Function at 0x404790
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x439104]
xor eax, 0xb3bf27fb
sub esp, 0x18
cmp eax, 0x8813101a
jg 0x4047b3
mov ecx, 0x3a7d
mov word [0x4404a2], cx
mov eax, dword [0x439e28]
movzx edx, word [0x44038e]
xor eax, 0x53648fde
movsx ecx, dx
or ecx, eax
movzx eax, word [0x4403fc]
xor eax, ecx
mov word [0x4403fc], ax
dec dword [0x439e28]
push ebx
push esi
mov esi, 1
add word [0x44038e], si
xor dword [0x437fec], 0xc035d16d
mov eax, dword [0x43f914]
mov ecx, dword [0x4394d4]
movzx edx, word [0x441bbc]
add word [0x441bbc], si
not eax
add eax, ecx
movsx ecx, dx
and ecx, eax
cmp ecx, 0x7346760f
push edi
jge 0x404839
mov dx, word [0x442d6e]
movsx eax, dx
cmp eax, 0x4fe1a9a5
jl 0x404839
mov cx, word [0x441b2e]
add dword [0x4378a8], 0xc5cf664e
mov edx, dword [0x438164]
imul edx, edx, 0x855c2900
push 0x41
mov dword [0x438164], edx
push 0xe26
xor ebx, ebx
call fcn.0042a160
mov dword [ebp - 0xc], eax
mov eax, dword [0x43ddc4]
not eax
imul eax, eax, 0x44d7ceae
add esp, 8
cmp eax, 0x4e39a9ba
jne 0x40489e
mov cx, word [0x4433ca]
movzx edx, word [0x4401d6]
movsx eax, cx
and eax, 0xa4cfa3a0
add edx, eax
mov word [0x4401d6], dx
jmp 0x4048c6
mov eax, dword [0x43d35c]
sub eax, 0xebabb61
and eax, 0x6c2fc132
cmp eax, 0x6e955771
jl 0x4048c6
mov ecx, dword [0x43d86c]
mov dword [0x43c534], ecx
add dword [0x43d86c], esi
push 4
push 0x293
call fcn.0042a160
mov edx, dword [0x43bec8]
and edx, 0xfffffffe
add esp, 8
cmp edx, 0x31000402
mov edi, eax
jle 0x4048f2
mov dword [0x43c054], 0xe9a8e9c3
lea eax, [ebp - 0x10]
push edi
push eax
call fcn.004112f0
add dword [0x43f6d8], 0x34ecf7c7
push 4
push 0x2a0
call fcn.0042a160
inc dword [0x437674]
mov ecx, dword [0x437674]
mov esi, eax
mov eax, 0xe1ab2619
sub eax, ecx
or eax, 0x65bf03e9
sub dword [0x43a0e0], eax
push edi
push 4
call fcn.0040cb20
mov edx, dword [0x43f49c]
imul edx, edx, 0x47caf907
lea eax, [ebp - 0x14]
push esi
mov dword [0x43f49c], edx
push eax
call fcn.004112f0
mov ecx, dword [0x43c940]
mov edx, dword [0x43cf78]
or ecx, edx
or ecx, 0xa969da59
push 4
mov dword [0x43c940], ecx
inc dword [0x43cf78]
push 0x75f
call fcn.0042a160
mov edi, eax
mov ax, word [0x441d62]
mov dx, word [0x44409e]
movsx ecx, ax
mov eax, 0x7190eb04
sub eax, ecx
movsx ecx, dx
xor ecx, eax
mov eax, dword [0x43fa18]
inc dword [0x43fa18]
and eax, 0xca3f893d
add esp, 0x28
cmp ecx, eax
je 0x4049e0
mov ecx, dword [0x43b9a8]
sar ecx, 7
sub ecx, 0x929c0d7
and ecx, 0x6186fd08
cmp ecx, 0x83df9214
jne 0x4049f3
or dword [0x43bc8c], 0x4b3ccee4
jmp 0x4049f3
mov edx, dword [0x43b4e0]
mov eax, dword [0x43d86c]
or edx, eax
mov dword [0x43b4e0], edx
push esi
push 4
call fcn.0040cb20
add dword [0x43ba28], 0x38ea6dc9
lea ecx, [ebp - 0x18]
push edi
push ecx
call fcn.004112f0
mov edx, dword [0x43e5b4]
mov eax, dword [0x4399d8]
or edx, eax
push edi
mov dword [0x43e5b4], edx
push 4
call fcn.0040cb20
mov eax, dword [0x43d134]
mov ecx, dword [0x437f98]
xor eax, 0xc59bedbf
and ecx, 0x402c090
sar eax, 1
or ecx, 0x4bf1034d
add esp, 0x18
cmp eax, ecx
jg 0x404a99
mov edx, dword [0x43a180]
mov ecx, dword [0x437b5c]
mov eax, 0x344f1b3a
sub eax, edx
mov edx, dword [0x4381f8]
inc dword [0x4381f8]
or edx, 0xcf5e0906
sub eax, ecx
cmp eax, edx
mov edx, 1
jle 0x404a8d
mov eax, dword [0x43f220]
mov cx, word [0x442620]
jmp 0x404a9e
add dword [0x43e9dc], 0xd044fda4
jmp 0x404a9e
mov edx, 1
mov edi, dword [ebp + 0x14]
cmp dword [ebp + 0xc], ebx
je 0x404e12
lea ebx, [ebx]
sub dword [ebp + 0xc], edx
mov eax, 0xfffff4f2
mov word [0x441156], ax
mov eax, dword [0x43df90]
lea ecx, [eax - 0x5acb50f3]
mov eax, dword [0x43bf6c]
not eax
or eax, ecx
mov ecx, dword [0x438a60]
or ecx, 0x10b20402
cmp ecx, eax
jle 0x404af6
add word [0x444242], dx
mov ax, word [0x444242]
cwde
or dword [0x43d7d8], eax
mov ecx, dword [ebp + 8]
mov al, byte [ecx]
mov cx, word [0x44242a]
mov byte [ebp + ebx - 4], al
movsx eax, cx
sub eax, 0x2a884ee8
cmp eax, 0x8e3a10d7
jg 0x404b1f
xor dword [0x43bbc0], 0x856104b9
mov ecx, dword [0x437fc0]
add dword [ebp + 8], edx
mov eax, 0x53ad45ec
sub eax, ecx
mov ecx, dword [0x43d4c4]
add eax, ecx
mov ecx, dword [0x4388d0]
add ecx, eax
mov dword [0x43d4c4], ecx
mov eax, dword [0x4388f0]
mov ecx, dword [0x43bc10]
imul eax, ecx
add ebx, edx
mov dword [0x4388f0], eax
cmp ebx, 3
jne 0x404dd7
movzx eax, word [0x4438aa]
mov cl, byte [ebp - 4]
or eax, 0x38c1e1ef
shr cl, 2
mov word [0x4438aa], ax
mov byte [ebp - 8], cl
add dword [0x438610], edx
mov eax, dword [0x438610]
cmp eax, 0xbc322a06
jg 0x404bae
add dword [0x4382fc], edx
mov cx, word [0x4445c4]
movsx eax, cx
mov ecx, dword [0x4382fc]
sub eax, ecx
mov word [0x4445c4], ax
mov ecx, dword [0x43c464]
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
mov eax, dword [0x43eee8]
sar ecx, 7
imul eax, ecx
xor dword [0x43e68c], eax
movzx ecx, byte [ebp - 3]
shr cl, 4
add byte [ebp - 7], cl
and dword [0x437168], 0xf1250437
mov al, byte [ebp - 3]
and al, 0xf
add al, al
add al, al
mov byte [ebp - 6], al
mov ecx, 0x5d7e
mov word [0x4428b0], cx
movzx ecx, byte [ebp - 2]
shr cl, 6
add al, cl
mov byte [ebp - 6], al
add dword [0x439010], edx
mov eax, dword [0x439010]
movzx edx, word [0x444344]
or eax, 0x1c030151
and edx, eax
movzx eax, byte [ebp - 2]
and al, 0x3f
mov word [0x444344], dx
mov byte [ebp - 5], al
add dword [0x437910], 0x9adf873c
mov eax, dword [0x43b834]
movzx ecx, word [0x443676]
add eax, 0xe1ad4497
or ecx, eax
xor esi, esi
mov word [0x443676], cx
dec dword [0x43b834]
mov edi, edi
movzx edx, word [0x4403e6]
or edx, 0xd83ddcd5
cmp byte [ebp + 0x10], 0
mov word [0x4403e6], dx
je 0x404d25
mov cl, byte [ebp + esi - 8]
cmp cl, 0x3d
jbe 0x404d25
mov eax, dword [0x43b628]
or eax, 0x2c62f0dc
cmp eax, 0x9340b52d
jle 0x404cc5
mov edx, dword [0x43d4fc]
sub edx, 0x1c15531e
cmp edx, 0xbed249dd
jg 0x404cc5
mov ax, word [0x441f92]
cwde
shl eax, 7
xor eax, 0xdb050724
add dword [0x43e150], eax
cmp cl, 0x3e
jne 0x404ceb
xor dword [0x439b30], 0x8221a204
lea ecx, [ebp - 0x10]
push ecx
mov ecx, edi
call fcn.004096e0
mov dword [0x43caf0], 0xe51f0efb
jmp 0x404d0a
lea edx, [ebp - 0x14]
mov dword [0x43f48c], 0x240885
push edx
mov ecx, edi
call fcn.004096e0
add dword [0x437c50], 0x75d06a59
mov eax, dword [0x437e50]
shl eax, 4
cmp eax, 0xd7fbeffb
jl 0x404d69
and dword [0x4385d0], 0xc7f657d8
jmp 0x404d69
dec dword [0x438840]
mov eax, dword [0x439de8]
lea ecx, [eax - 0x1af6cddb]
mov eax, dword [0x43d00c]
or eax, ecx
mov ecx, dword [0x438840]
movzx edx, byte [ebp + esi - 8]
or ecx, eax
mov eax, dword [ebp - 0xc]
mov dword [0x43d00c], ecx
movzx ecx, byte [edx + eax]
push ecx
mov ecx, edi
call fcn.00407c40
xor dword [0x43aac0], 0x85711c16
xor dword [0x439684], 0x1ab1617
inc esi
mov dword [0x43a68c], 0x83d5572f
cmp esi, 4
jne 0x404c60
mov edx, dword [0x43ca08]
mov eax, dword [0x43e66c]
dec dword [0x43e66c]
xor edx, eax
xor edx, 0x2f00e0a7
cmp edx, 0x2c352bbf
jne 0x404dc8
mov ecx, dword [0x43a9b8]
not ecx
xor ecx, 0xd1b5db8f
cmp ecx, 0xb7319299
je 0x404dc8
xor dword [0x43da10], 0x40b21e20
xor ebx, ebx
xor dword [0x43d53c], 0x54513611
lea edx, [ebx + 1]
mov eax, dword [0x43d670]
sub eax, 0x117f9a80
cmp eax, 0xe22bfc14
jg 0x404df4
and dword [0x43867c], 0x4cce01ff
jmp 0x404e08
movzx ecx, word [0x4444d0]
add ecx, 0x619eacb1
mov word [0x4444d0], cx
cmp dword [ebp + 0xc], 0
jne 0x404ab0
mov edx, dword [0x43be48]
mov eax, dword [0x43b76c]
sub edx, eax
mov dword [0x43be48], edx
test ebx, ebx
je 0x40535b
mov cx, word [0x44317a]
mov edx, dword [0x43e3fc]
movsx eax, cx
and edx, eax
mov word [0x44317a], dx
mov eax, dword [0x43c9b0]
imul eax, eax, 0x94f44d78
cmp ebx, 3
mov dword [0x43c9b0], eax
jge 0x404f04
mov esi, 3
sub esi, ebx
push esi
lea eax, [ebp + ebx - 4]
push 0
push eax
call fcn.00416690
add esp, 0xc
mov edx, 0xfbf9f096
mov ecx, 0xd83448c4
mov edi, 1
jmp 0x404e90
mov eax, dword [0x436fc0]
and eax, 0x1565d634
cmp eax, 0x4030d96e
je 0x404eba
mov eax, dword [0x43be28]
sar eax, 1
add eax, 0x4d1ba556
cmp eax, 0xeaf3e28a
jge 0x404eba
mov dword [0x436f14], edx
movzx eax, word [0x443fca]
xor eax, 0x5f5cf504
mov word [0x443fca], ax
add dword [0x43fa84], edi
mov eax, dword [0x43fa84]
xor eax, 0x1378d866
cmp eax, 0x32d83fd
jl 0x404eeb
or dword [0x438a5c], ecx
jmp 0x404efe
mov eax, dword [0x439390]
sar eax, 4
add eax, 0x61346cd0
xor dword [0x43e06c], eax
sub esi, edi
jne 0x404e90
jmp 0x404f09
mov edi, 1
mov dl, byte [ebp - 4]
mov ecx, 0x3f6
mov word [0x4436a0], cx
movzx eax, word [0x442e22]
mov cl, byte [ebp - 4]
shr dl, 2
and eax, 0xf6ffff9b
and cl, 3
mov byte [ebp - 8], dl
mov word [0x442e22], ax
shl cl, 4
or esi, 0xffffffff
mov byte [ebp - 7], cl
add dword [0x43bbb8], esi
mov eax, dword [0x43bbb8]
mov edx, dword [0x43c218]
add eax, 0x7b93a1e1
xor eax, 0x5422edce
or edx, 0x3d8de92c
cmp eax, edx
jle 0x404f8e
mov eax, dword [0x43d018]
cmp eax, 0xb18c00ed
jne 0x404f8e
mov eax, dword [0x43817c]
mov ecx, dword [0x43edb4]
add eax, 0x151fb490
xor ecx, eax
xor ecx, 0xea6ba989
mov dword [0x43edb4], ecx
mov dl, byte [ebp - 3]
shr dl, 4
add byte [ebp - 7], dl
add dword [0x43bbdc], edi
mov eax, dword [0x43bbdc]
and eax, 0x64bab7e1
cmp eax, 0xe4fa3c14
je 0x404fec
mov ecx, dword [0x438b30]
mov edx, dword [0x43855c]
add dword [0x43855c], edi
xor ecx, edx
cmp ecx, 0x25a01018
jge 0x404fec
mov ax, word [0x4412b0]
mov ecx, dword [0x43993c]
cwde
and eax, 0x612e1cc8
imul ecx, eax
mov dword [0x43993c], ecx
add word [0x4412b0], si
movzx edx, byte [ebp - 3]
and dl, 0xf
add dl, dl
add dl, dl
mov byte [ebp - 6], dl
add dword [0x437510], 0xedfff7fc
mov cx, word [0x442092]
mov al, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
movsx eax, cx
mov ecx, dword [0x43b4b0]
and eax, 0xfb83e131
xor ecx, eax
or dword [0x4393f0], ecx
movzx eax, word [0x443032]
movzx edx, byte [ebp - 2]
and dl, 0x3f
or eax, 0xcdb2dd61
mov byte [ebp - 5], dl
mov word [0x443032], ax
or dword [0x439e2c], 0x675cf7c4
mov eax, dword [0x43851c]
mov ecx, dword [0x43d0bc]
movzx edx, word [0x442018]
shl eax, 4
xor ecx, eax
lea eax, [ecx*8]
or edx, eax
xor esi, esi
mov word [0x442018], dx
test ebx, ebx
jl 0x405234
mov edi, 0xa688b008
jmp 0x405090
mov eax, dword [0x436ecc]
shl eax, 6
xor dword [0x43c030], eax
cmp byte [ebp + 0x10], 0
je 0x405184
mov cl, byte [ebp + esi - 8]
cmp cl, 0x3d
jbe 0x405184
mov ax, word [0x441e66]
cwde
xor eax, 0x9ff7c74b
sub dword [0x43c2a4], eax
cmp cl, 0x3e
jne 0x405109
mov eax, dword [0x43aca0]
mov ecx, dword [0x43fae0]
or eax, 0xe73bb87e
imul ecx, eax
mov dword [0x43fae0], ecx
dec dword [0x43aca0]
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x10]
push edx
call fcn.004096e0
mov eax, dword [0x43ae34]
imul eax, eax, 0x5761342
mov dword [0x43ae34], eax
jmp 0x405167
or dword [0x43f2ec], edi
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.004096e0
mov edx, dword [0x43c518]
imul edx, edx, 0xafe41a0
cmp edx, 0xfdffd7c6
jle 0x40515d
mov ax, word [0x440bc4]
mov cx, word [0x43ffaa]
cwde
sar eax, 1
movsx edx, cx
and eax, 0x3d5cb1eb
or edx, eax
cmp edx, 0xe46d85ac
jle 0x405167
mov dword [0x43ade8], 0x5c63aa7e
jmp 0x405167
add dword [0x43a168], 0xe47f94f1
mov eax, dword [0x43d504]
mov ecx, dword [0x43b1c8]
not eax
add eax, 0x7011ac30
imul ecx, eax
mov dword [0x43b1c8], ecx
jmp 0x4051b5
movzx eax, byte [ebp + esi - 8]
mov ecx, dword [ebp - 0xc]
mov edx, 0x2f40
mov word [0x441d7e], dx
movzx edx, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push edx
call fcn.00407c40
mov eax, dword [0x43801c]
imul eax, eax, 0x49cb1fed
mov dword [0x43801c], eax
mov cx, word [0x440df4]
movsx eax, cx
and eax, 0xde78ad5d
add dword [0x43ce20], eax
inc word [0x440df4]
dec dword [0x43d6fc]
mov edx, dword [0x43d6fc]
xor edx, 0x82750567
inc esi
cmp edx, 0x81b1c2a4
jge 0x405205
mov ecx, dword [0x43ebf8]
imul ecx, ecx, 0x4a351915
mov eax, 0x8c54422c
sub eax, ecx
xor dword [0x437cdc], eax
mov eax, dword [0x43851c]
mov edx, dword [0x43d0bc]
movzx ecx, word [0x442018]
shl eax, 4
xor edx, eax
lea eax, [edx*8]
or ecx, eax
cmp esi, ebx
mov word [0x442018], cx
jle 0x405090
mov edx, dword [0x43dfd4]
imul edx, edx, 0xa23056a0
cmp ebx, 3
mov dword [0x43dfd4], edx
jge 0x40532b
mov esi, 3
sub esi, ebx
mov ebx, 0x8c29a08d
mov edi, 0x33e9f793
or dword [0x43a90c], 0x41a574de
or dword [0x43a7a0], 0x84cb84a0
cmp byte [ebp + 0x10], 0
mov ecx, dword [ebp + 0x14]
je 0x40529e
xor dword [0x43ab80], ebx
lea eax, [ebp - 0x18]
push eax
call fcn.004096e0
mov eax, dword [0x43d3d8]
and eax, 0x56496815
or dword [0x43d4d8], eax
jmp 0x4052f8
or dword [0x439240], edi
push 0x3d
call fcn.00407c40
mov ecx, dword [0x43d24c]
imul ecx, ecx, 0x3270e117
cmp ecx, 0xa26d68a3
je 0x4052d8
dec dword [0x43b9fc]
mov eax, dword [0x43b9fc]
imul eax, eax, 0x315e5602
sub dword [0x437d54], eax
jmp 0x4052f8
inc dword [0x43a9e8]
mov eax, dword [0x43a9e8]
movzx edx, word [0x442202]
xor eax, 0xdb6199c9
sub edx, eax
mov word [0x442202], dx
dec dword [0x43ec98]
mov ecx, dword [0x437ae8]
mov eax, dword [0x43ec98]
not ecx
and eax, ecx
movzx ecx, word [0x44360c]
and eax, 0x8a81b3a8
xor ecx, eax
sub esi, 1
mov word [0x44360c], cx
jne 0x405260
mov dx, word [0x4414a0]
mov ecx, dword [0x43d95c]
movsx eax, dx
add eax, eax
add eax, eax
add eax, eax
xor ecx, eax
or ecx, 0x5a2301fb
cmp ecx, 0x28aa80ce
jg 0x40535b
or dword [0x43e428], 0xe11fad30
mov edx, dword [0x43d3a0]
mov eax, dword [0x437db4]
mov ecx, dword [ebp - 0xc]
or edx, eax
push ecx
or edx, 0xccd8f33e
mov dword [0x43d3a0], edx
push 0x41
call fcn.0040cb20
mov edx, dword [0x43ebac]
mov eax, dword [0x438194]
imul edx, eax
imul edx, edx, 0xfdef4d11
push 4
lea ecx, [ebp - 0x10]
push 0
mov dword [0x43ebac], edx
dec dword [0x438194]
push ecx
call fcn.00416690
mov edx, dword [0x437978]
imul edx, edx, 0x6c177915
add esp, 0x14
pop edi
pop esi
pop ebx
cmp edx, 0x5a9baceb
jne 0x4053ed
mov ecx, dword [0x43e770]
mov edx, dword [0x437cfc]
mov eax, 0xdaf9008c
sub eax, ecx
add edx, eax
cmp edx, 0x414105
jle 0x4053ed
mov dword [0x4394f4], 0x92f86c38
push 4
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.00416690
mov ecx, dword [0x43e558]
push 4
lea edx, [ebp - 0x18]
push 0
mov dword [0x43c220], ecx
inc dword [0x43e558]
push edx
call fcn.00416690
mov eax, dword [0x437cc8]
sub eax, 0x41e93f44
xor eax, 0x179101c4
add esp, 0x18
cmp eax, 0xa7220b92
jne 0x40544d
mov ecx, dword [0x43959c]
shl ecx, 7
mov eax, 0x427892c
sub eax, ecx
or eax, 0xdca165ab
xor dword [0x43cc38], eax
mov esp, ebp
pop ebp
ret