Function at 0x40cbb8
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x438e94]
sub esp, 0x18
add eax, 0x2b78311a
dec dword [0x438e94]
cmp eax, 0x3f410080
jge 0x40cbfe
cmp dword [0x438e04], 0x8f801440
jge 0x40cc48
mov eax, dword [0x43cf9c]
mov ecx, dword [0x43b424]
imul eax, eax, 0x54bffe56
not ecx
or ecx, eax
xor dword [0x439f0c], ecx
jmp 0x40cc48
mov ecx, dword [0x43bb30]
mov eax, dword [0x43e3c4]
and ecx, 0x49fe8844
or eax, ecx
cmp eax, 0xa29af49a
je 0x40cc3e
mov eax, dword [0x43d5b4]
mov ecx, dword [0x43a830]
add eax, 0xbb657bde
xor ecx, eax
xor ecx, 0xa0635fd7
mov dword [0x43a830], ecx
dec dword [0x43d5b4]
jmp 0x40cc48
or dword [0x43d6e8], 0x9091a78f
mov eax, dword [0x43b564]
xor eax, dword [0x43b0a8]
xor eax, 0x9f863776
mov dword [0x43b0a8], eax
and dword [0x439ed8], 0x50a48857
xor dword [0x43bb60], 0xdb6aa645
add dword [0x4393c4], 0x7db03f23
mov ecx, dword [0x43bc8c]
mov eax, dword [0x437ef8]
add ecx, 0x35d1cab7
push ebx
push esi
push edi
add eax, ecx
xor edi, edi
push 0x41
mov dword [0x437ef8], eax
push 0x169f
call fcn.0042bf01
pop ecx
pop ecx
mov ecx, dword [0x43b388]
mov dword [ebp - 0xc], eax
lea ecx, [ecx*8 - 0x2187d66e]
xor ecx, 0x51e4682d
cmp ecx, 0xf93bfbbf
jg 0x40ccd0
or dword [0x43935c], 0xec72a419
jmp 0x40cce1
mov eax, dword [0x43a568]
imul eax, dword [0x438c6c]
mov dword [0x43a568], eax
push 4
push 0xa7d
call fcn.0042bf01
xor dword [0x43c73c], 0xb6c68f24
mov esi, eax
lea eax, [ebp - 0x10]
push esi
push eax
call fcn.0041faff
dec word [0x434516]
mov cx, word [0x434516]
imul edx, dword [0x43b280], 0x72bec5df
movsx eax, cx
push 4
push 0x16eb
or edx, eax
movzx eax, word [0x435cfc]
xor eax, edx
mov word [0x435cfc], ax
call fcn.0042bf01
mov ecx, dword [0x4397b0]
add esp, 0x18
and ecx, 0x49c86e85
mov ebx, eax
cmp ecx, 0x220b4606
je 0x40cd7d
dec dword [0x438100]
mov ecx, dword [0x438100]
mov edx, dword [0x43d848]
shl edx, 9
add edx, ecx
cmp edx, 0x200b80a
jge 0x40cd7d
add dword [0x43c0e4], 0xa374cd7c
push esi
push 4
call fcn.0040f97d
movsx eax, word [0x434e4c]
add eax, 0x1e0959a2
pop ecx
pop ecx
cmp eax, 0x2c7f2d0a
jne 0x40cda4
and dword [0x43abcc], 0x4afdf327
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.0041faff
mov eax, dword [0x43d8e8]
movzx ecx, word [0x433b5e]
shl eax, 2
xor ecx, eax
xor ecx, 0xa842209e
push 4
mov word [0x433b5e], cx
push 0x279
call fcn.0042bf01
movzx ecx, word [0x436c42]
mov esi, eax
sub ecx, 0x4775fb34
push ebx
mov word [0x436c42], cx
push 4
call fcn.0040f97d
movzx ecx, word [0x4335d6]
lea eax, [ebp - 0x18]
and ecx, 0x31880910
push esi
mov word [0x4335d6], cx
push eax
call fcn.0041faff
imul eax, dword [0x437988], 0x29f8b6a
push esi
push 4
mov dword [0x437988], eax
call fcn.0040f97d
movsx eax, word [0x4359dc]
add esp, 0x28
movsx ecx, word [0x43438c]
mov esi, dword [ebp + 0xc]
imul eax, eax, 0xad1e099
push 3
pop ebx
and ecx, eax
mov eax, dword [0x43bb38]
imul eax, ecx
mov dword [0x43bb38], eax
jmp 0x40d2e3
movsx eax, word [0x4330a2]
inc word [0x4330a2]
cmp eax, 0x8846586
jge 0x40ce8a
mov ecx, dword [0x43b7c8]
mov eax, dword [0x43e31c]
or ecx, 0x3de96484
imul eax, ecx
mov dword [0x43e31c], eax
mov ecx, dword [0x43e200]
dec esi
mov eax, dword [0x43e1a4]
shl ecx, 0xa
sar eax, 1
add eax, ecx
mov dword [ebp + 0xc], esi
cmp eax, 0x242d15b8
jle 0x40cee9
dec word [0x43364c]
mov ax, word [0x43364c]
movsx ecx, word [0x4341a4]
mov edx, dword [0x43d5e4]
cwde
imul ecx, eax
mov eax, dword [0x4384a8]
add edx, ecx
mov ecx, 0xf2fbca33
sub ecx, eax
dec dword [0x4384a8]
cmp edx, ecx
jge 0x40cf20
add dword [0x4385bc], 0x9750abd4
jmp 0x40cf20
inc dword [0x43b0f8]
mov eax, dword [0x43b0f8]
cmp eax, 0x74a3c21a
jle 0x40cf20
dec word [0x433c50]
mov ax, word [0x433c50]
mov ecx, dword [0x43dee4]
sar ecx, 6
and ecx, 0xf650e8d0
cwde
xor ecx, eax
or dword [0x43cea4], ecx
mov ecx, dword [ebp + 8]
mov al, byte [ecx]
mov byte [ebp + edi - 4], al
mov eax, 0x1551
or dword [0x43d5a8], 0xbed17609
inc edi
mov word [0x433bf0], ax
inc ecx
movzx eax, word [0x436252]
add eax, 0x1f3d3bcd
mov dword [ebp + 8], ecx
mov word [0x436252], ax
cmp edi, ebx
jne 0x40d2b1
add dword [0x439870], 0x44302a1d
mov al, byte [ebp - 4]
movsx ecx, word [0x436170]
shr al, 2
not ecx
mov byte [ebp - 8], al
add ecx, 0x32908aa6
mov eax, dword [0x43aa08]
or eax, 0xcc7b9f4c
cmp ecx, eax
jne 0x40cfab
inc word [0x4364ae]
mov ax, word [0x4364ae]
mov ecx, dword [0x437b54]
cwde
xor ecx, eax
mov dword [0x437b54], ecx
jmp 0x40cfba
imul eax, dword [0x43a530], 0xddf8b67a
mov dword [0x43a530], eax
mov al, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
inc dword [0x437bb0]
mov eax, dword [0x437bb0]
movsx ecx, word [0x43507a]
not ecx
add ecx, eax
cmp ecx, 0x974bb104
jg 0x40d006
inc dword [0x43c30c]
mov ecx, dword [0x43c30c]
mov eax, dword [0x43d174]
add eax, ecx
mov ecx, dword [0x438304]
not ecx
xor ecx, eax
xor dword [0x43c4d0], ecx
mov al, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
mov eax, dword [0x437220]
movsx ecx, word [0x43417a]
not eax
add eax, 0xc7f165ac
shl ecx, 5
xor ecx, eax
cmp ecx, 0xe04a83c0
jge 0x40d042
mov eax, dword [0x43a770]
imul eax, eax, 0xed3c47a2
and dword [0x436efc], eax
jmp 0x40d057
mov ecx, dword [0x43cbec]
mov eax, 0x837613d8
shl ecx, 5
sub eax, ecx
mov dword [0x4370dc], eax
mov al, byte [ebp - 3]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
mov ax, word [0x436874]
mov ecx, dword [0x43aeac]
cwde
and ecx, eax
mov al, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
mov word [0x436874], cx
dec dword [0x43ab68]
mov ecx, dword [0x43ab68]
mov eax, dword [0x43b848]
add eax, 0x7c668cb2
add eax, ecx
mov dword [0x43b848], eax
mov al, byte [ebp - 2]
and al, 0x3f
cmp dword [0x4384e0], 0x4a53454
mov byte [ebp - 5], al
je 0x40d0cf
imul eax, dword [0x43c0d8], 0x107268a0
or eax, 0x3afa3242
xor dword [0x438394], eax
dec dword [0x43c0d8]
jmp 0x40d0d9
and dword [0x4381dc], 0x9dc39375
mov ecx, dword [0x437a48]
mov eax, 0x30264f9b
shl ecx, 0xa
xor esi, esi
sub eax, ecx
cmp eax, 0x5b85fde3
jge 0x40d104
movzx eax, word [0x432f62]
or eax, 0x39f97016
mov word [0x432f62], ax
mov bl, byte [ebp + 0x10]
inc dword [0x437ce0]
mov eax, dword [0x437ce0]
mov ecx, dword [0x437d88]
or ecx, eax
or ecx, 0xfd1af126
mov dword [0x437d88], ecx
test bl, bl
je 0x40d20a
mov dl, byte [ebp + esi - 8]
cmp dl, 0x3d
jbe 0x40d20a
mov ax, word [0x43533c]
mov ecx, dword [0x439324]
cwde
add ecx, eax
or ecx, 0x6f54c824
inc dword [0x439324]
cmp ecx, 0x10188
jle 0x40d17f
movsx eax, word [0x4332ea]
inc word [0x4332ea]
cmp eax, 0x55970520
je 0x40d192
add dword [0x436f78], 0xdfcffff4
jmp 0x40d192
movzx eax, word [0x4340de]
imul eax, eax, 0xedfefeff
mov word [0x4340de], ax
cmp dl, 0x3e
jne 0x40d1c1
mov eax, dword [0x437f88]
mov ecx, 0x9d82b99c
sub ecx, eax
lea eax, [ebp - 0x10]
or dword [0x43a540], ecx
mov ecx, dword [ebp + 0x14]
push eax
call fcn.0041cc92
and dword [0x43a0dc], 0x8e81d2a8
jmp 0x40d1ed
cmp dword [0x438620], 0x1be3242a
je 0x40d1d7
xor dword [0x438ee0], 0xaff1f15b
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x14]
push eax
call fcn.0041cc92
mov dword [0x43e490], 0x3437e923
movsx eax, word [0x43669e]
movsx ecx, word [0x435226]
add eax, 0x3f0d6468
xor ecx, eax
and dword [0x4398cc], ecx
jmp 0x40d25a
mov eax, dword [0x43ae44]
add eax, 0x51027be
cmp eax, 0x3a7af6f1
jl 0x40d227
add dword [0x4393a8], 0xc8251800
jmp 0x40d236
imul eax, dword [0x43c798], 0x4080038
mov dword [0x43c798], eax
mov ecx, dword [ebp - 0xc]
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.0041f74b
imul eax, dword [0x4380ec], 0xd899c258
mov dword [0x4380ec], eax
inc dword [0x43b85c]
mov eax, dword [0x43b85c]
add eax, 0x3e44fb4f
cmp eax, 0xf560b288
jl 0x40d280
imul eax, dword [0x43989c], 0x68600c8d
mov dword [0x43989c], eax
inc esi
mov eax, 0xffffeaf4
mov word [0x436848], ax
cmp esi, 4
jne 0x40d107
or dword [0x43cde4], 0x42e42
xor edi, edi
and dword [0x43e140], 0xe67ff7df
mov esi, dword [ebp + 0xc]
push 3
pop ebx
movsx eax, word [0x4360c8]
sar eax, 4
and eax, 0x4221ded1
cmp eax, 0xe91af840
jge 0x40d2e3
mov eax, dword [0x43c81c]
inc dword [0x43c81c]
cmp eax, 0xef23810
jle 0x40d2e3
mov dword [0x437b3c], 0x317c03b8
test esi, esi
jne 0x40ce5c
mov eax, dword [0x43c474]
mov ecx, dword [0x437b00]
shl eax, 3
imul ecx, eax
mov dword [0x437b00], ecx
test edi, edi
je 0x40d799
or dword [0x43aef8], 0xb377289d
imul ecx, dword [0x43c0a0], 0x69cf1e44
movzx eax, word [0x433aee]
xor ecx, 0x3c8174e3
sub eax, ecx
mov word [0x433aee], ax
cmp edi, ebx
jge 0x40d3b1
mov esi, ebx
lea eax, [ebp - 4]
sub esi, edi
add eax, edi
push esi
push 0
push eax
call fcn.00416be2
add esp, 0xc
mov eax, dword [0x43d128]
or eax, dword [0x43bc30]
mov dword [0x43bc30], eax
add dword [0x43e480], 0x104630a6
mov eax, dword [0x438d3c]
sar eax, 1
imul ecx, eax, 0xfae79e0
imul eax, dword [0x439824], 0xe68c1134
and ecx, 0x45c97131
cmp ecx, eax
jle 0x40d39b
movzx eax, word [0x434790]
sub eax, 0x1f4ba10
mov word [0x434790], ax
jmp 0x40d3ae
movzx eax, word [0x43630c]
imul eax, eax, 0xe55782e5
mov word [0x43630c], ax
dec esi
jne 0x40d34c
mov eax, dword [0x43dac4]
sar eax, 0xa
and eax, 0xe73f23eb
cmp eax, 0x883140da
jl 0x40d3d7
movzx eax, word [0x434ddc]
or eax, 0xe6ffe357
mov word [0x434ddc], ax
mov al, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
movzx eax, word [0x435dea]
sub eax, 0x38caf1a8
mov word [0x435dea], ax
mov al, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
movsx eax, word [0x43592c]
xor eax, 0x1a4381
add dword [0x43e48c], eax
mov al, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
movzx eax, word [0x4343fe]
xor eax, 0xe494711f
mov word [0x4343fe], ax
mov al, byte [ebp - 3]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
mov eax, dword [0x43b998]
not eax
imul eax, eax, 0x2c3cfe3e
add eax, 0x5dab6cfc
cmp eax, 0xe188d79d
jl 0x40d48d
mov eax, dword [0x43a080]
sub eax, 0x5ad450d4
inc dword [0x43a080]
cmp eax, 0x2c23af3a
jl 0x40d483
movsx ecx, word [0x435350]
movzx eax, word [0x4350ae]
or ecx, 0xa899fe60
sub eax, ecx
mov word [0x4350ae], ax
jmp 0x40d48d
mov dword [0x43e014], 0x7ff9c3bf
mov al, byte [ebp - 2]
xor esi, esi
shr al, 6
add byte [ebp - 6], al
mov eax, dword [0x438e00]
sar eax, 6
sub dword [0x43aaf0], eax
mov al, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
mov eax, dword [0x439ca8]
xor eax, 0x1b17906a
and dword [0x43a9a8], eax
or dword [0x439b1c], 0xddaa8815
add dword [0x43e200], 0xcdb83b9b
test edi, edi
js 0x40d69a
mov bl, byte [ebp + 0x10]
movsx eax, word [0x434e0e]
imul eax, eax, 0xae480aa2
xor eax, 0x250bdf54
or dword [0x43add0], eax
test bl, bl
je 0x40d621
mov dl, byte [ebp + esi - 8]
cmp dl, 0x3d
jbe 0x40d621
mov ecx, dword [0x4371b0]
movzx eax, word [0x433d20]
sar ecx, 9
or ecx, 0x4738d106
imul eax, ecx
mov ecx, dword [ebp + 0x14]
mov word [0x433d20], ax
cmp dl, 0x3e
jne 0x40d5ac
or dword [0x43ae00], 0x776fbeff
lea eax, [ebp - 0x10]
push eax
call fcn.0041cc92
dec dword [0x43c2d4]
mov ecx, dword [0x43c2d4]
mov eax, dword [0x4398b8]
xor ecx, 0xa1b14d8c
and eax, 0x8b5cc4bd
dec dword [0x4398b8]
cmp eax, ecx
jle 0x40d57e
movzx eax, word [0x433fb8]
sub eax, 0x7f7eaaa0
mov word [0x433fb8], ax
jmp 0x40d5d6
mov ecx, dword [0x438a14]
mov eax, dword [0x439e3c]
not ecx
and ecx, 0x429b280
and eax, 0x209eab6b
xor ecx, 0x3357b841
cmp eax, ecx
jle 0x40d5d6
add dword [0x438210], 0x93d93128
jmp 0x40d5d6
mov eax, dword [0x43caa8]
shl eax, 7
sub eax, 0x6707c9e5
mov dword [0x438494], eax
lea eax, [ebp - 0x14]
push eax
call fcn.0041cc92
imul eax, dword [0x43b37c], 0xc4672cd5
mov dword [0x43b37c], eax
dec dword [0x43a288]
mov eax, dword [0x43a288]
imul ecx, eax, 0x95ee465f
mov eax, dword [0x43a08c]
and ecx, eax
imul eax, dword [0x43dd88], 0xdf9f2695
xor eax, 0x632484bc
inc dword [0x43dd88]
dec dword [0x43a08c]
cmp ecx, eax
jge 0x40d669
mov eax, dword [0x438db8]
mov ecx, 0xfc0ff782
sub ecx, eax
add dword [0x438dcc], ecx
jmp 0x40d669
mov eax, dword [0x439870]
mov ecx, dword [ebp - 0xc]
and eax, 0x8e441b3a
mov dword [0x439f30], eax
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.0041f74b
mov ecx, dword [0x43af74]
movzx eax, word [0x436bd2]
xor ecx, 0x9a0409
shl ecx, 5
or ecx, 0xac874edc
xor eax, ecx
mov word [0x436bd2], ax
and dword [0x43beec], 0xd25985bb
inc esi
dec dword [0x43b708]
mov eax, dword [0x43b708]
xor dword [0x43a5c4], eax
add dword [0x43e200], 0xcdb83b9b
cmp esi, edi
jle 0x40d4dd
push 3
pop ebx
dec dword [0x438920]
mov ecx, 0x2b84df48
mov eax, dword [0x438920]
sub ecx, eax
or ecx, dword [0x43c1b0]
mov dword [0x43c1b0], ecx
cmp edi, ebx
jge 0x40d776
sub ebx, edi
movsx eax, word [0x434236]
and eax, 0x286ad86
shl eax, 5
and dword [0x439eec], eax
movsx eax, word [0x4342d4]
not eax
imul eax, eax, 0x9b3d013
or eax, 0x35cd686
cmp eax, 0xeee83ccc
jne 0x40d705
movzx eax, word [0x435ea2]
imul eax, eax, 0x43100000
mov word [0x435ea2], ax
cmp byte [ebp + 0x10], 0
mov ecx, dword [ebp + 0x14]
je 0x40d744
lea eax, [ebp - 0x18]
mov dword [0x43e320], 0x99df2f3f
push eax
call fcn.0041cc92
mov ecx, dword [0x43a4dc]
mov eax, dword [0x437618]
not ecx
sub ecx, 0xf150cab
and ecx, 0xc7ea59b7
imul eax, ecx
mov dword [0x437618], eax
jmp 0x40d760
or dword [0x43c42c], 0x540fcc23
push 0x3d
call fcn.0041f74b
mov eax, 0xffffbb2b
mov word [0x434844], ax
imul eax, dword [0x43c640], 0xddbbf4fa
mov dword [0x43c640], eax
dec ebx
jne 0x40d6c2
inc dword [0x43da90]
mov ecx, dword [0x43da90]
mov edx, dword [0x43a330]
mov eax, dword [0x43d4b8]
sar edx, 4
and eax, ecx
and eax, edx
mov dword [0x43d4b8], eax
imul eax, dword [0x437c24], 0xa60908a7
push dword [ebp - 0xc]
push 0x41
mov dword [0x437c24], eax
call fcn.0040f97d
mov ax, word [0x43374c]
pop ecx
pop ecx
movsx ecx, word [0x4343dc]
cwde
or ecx, eax
inc word [0x4343dc]
cmp ecx, 0xecd854dd
jge 0x40d808
inc dword [0x438680]
mov eax, dword [0x438680]
and eax, 0xe4a81d49
cmp eax, 0x6c380673
jl 0x40d808
mov eax, dword [0x43a258]
mov ecx, dword [0x43b12c]
add eax, 0xf53999a4
and ecx, eax
and ecx, 0xee2f5234
mov dword [0x43b12c], ecx
push 4
xor ebx, ebx
lea eax, [ebp - 0x10]
push ebx
push eax
call fcn.00416be2
and dword [0x439fd8], 0xfc7c466e
lea eax, [ebp - 0x14]
push 4
push ebx
push eax
call fcn.00416be2
mov eax, dword [0x43c3c8]
mov word [0x434e0e], ax
lea eax, [ebp - 0x18]
push 4
push ebx
push eax
call fcn.00416be2
add esp, 0x24
add dword [0x438270], 0x241b8f3e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret