Function at 0x402387
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
mov ax, word [0x48e0f6]
imul eax, eax, 0x45de
mov word [0x48e0f6], ax
mov eax, dword [0x48b588]
mov ecx, dword [0x48b718]
lea edx, [ecx - 1]
mov dword [0x48b718], edx
lea eax, [eax + ecx + 0x52d92637]
cmp eax, 0xbf7daad3
jg 0x4023d6
mov eax, dword [0x4872c8]
mov cx, word [0x48e2c2]
lea eax, [eax + ecx + 0xb747]
mov word [0x48e2c2], ax
jmp 0x4023df
mov word [0x48c6e2], 0x888
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [0x48973c]
lea ecx, [eax + 1]
mov dword [0x48973c], ecx
mov cx, word [0x48c20e]
add ecx, eax
mov word [0x48c20e], cx
mov eax, dword [0x48a018]
shl eax, 8
or eax, 0x5d098b09
mov ecx, dword [0x4869dc]
sub ecx, eax
mov dword [0x4869dc], ecx
mov eax, dword [0x4897e4]
lea ecx, [eax + 1]
mov dword [0x4897e4], ecx
xor eax, 0x4872cd2f
mov ecx, dword [0x48aa14]
sub ecx, eax
mov dword [0x48aa14], ecx
inc dword [0x486f18]
mov eax, dword [0x486504]
lea ecx, [eax + 1]
mov dword [0x486504], ecx
add eax, 0x3a056d40
mov cx, word [0x48c396]
imul ecx, eax
mov word [0x48c396], cx
push 0x41
push 0x608d
call fcn.00418b05
add esp, 8
mov esi, eax
mov eax, dword [0x48867c]
dec eax
mov dword [0x48867c], eax
or eax, 0x4ca4
mov cx, word [0x48cf16]
sub ecx, eax
mov word [0x48cf16], cx
push 4
push 0x3b4e
call fcn.00418b05
add esp, 8
mov ebx, eax
mov eax, dword [0x489fbc]
cmp eax, 0x6f7fffe0
jl 0x4024de
mov eax, dword [0x486084]
mov ecx, dword [0x48a7f8]
sub eax, ecx
cmp eax, 0xac1f03d
jg 0x4024d9
mov eax, dword [0x487a48]
mov ax, word [0x48cb36]
jmp 0x4024de
mov eax, dword [0x48849c]
lea eax, [esp + 0x11]
push ebx
push eax
call fcn.0043d190
add esp, 8
mov eax, dword [0x489938]
mov cx, word [0x48d8cc]
or ecx, eax
mov word [0x48d8cc], cx
mov ebp, 4
push ebp
push 0xf65
call fcn.00418b05
add esp, 8
mov edi, eax
mov dword [0x48b36c], 0x123cc67e
push ebx
push ebp
call fcn.0042862d
add esp, 8
mov eax, dword [0x486dcc]
sar eax, 6
xor eax, 0xb4db13cc
mov cx, word [0x48dbe4]
lea edx, [ecx - 1]
mov word [0x48dbe4], dx
movsx ecx, cx
or ecx, eax
cmp ecx, 0x434f1077
jl 0x402583
mov eax, dword [0x48712c]
and eax, 0xc2941a9d
cmp eax, 0xd0121faf
jl 0x402572
mov eax, dword [0x486abc]
mov eax, dword [0x48995c]
jmp 0x402583
mov eax, dword [0x4890e0]
imul eax, eax, 0x38f10fa3
or dword [0x486f1c], eax
lea eax, [esp + 0xd]
push edi
push eax
call fcn.0043d190
add esp, 8
dec dword [0x487ba4]
push ebp
push 0x3b54
call fcn.00418b05
add esp, 8
mov ebx, eax
mov eax, dword [0x48b6e8]
mov ax, word [0x48d378]
dec eax
mov word [0x48d378], ax
cwde
imul eax, eax, 0x10babdb6
mov dword [0x48b0a8], eax
push edi
push ebp
call fcn.0042862d
add esp, 8
mov ax, word [0x48cdd2]
xor eax, 0xc7da
mov word [0x48cdd2], ax
lea ebp, [esp + 9]
push ebx
push ebp
call fcn.0043d190
add esp, 8
mov eax, dword [0x48a0f8]
sar eax, 8
imul eax, eax, 0x7abb13bd
add eax, 0x5b363cb3
cmp eax, 0x5569727d
jl 0x40261b
mov ax, word [0x48c476]
add eax, 0x6fe
mov word [0x48c476], ax
jmp 0x40263d
mov eax, dword [0x486298]
lea ecx, [eax - 1]
mov dword [0x486298], ecx
mov ecx, 0x24a2f38a
sub ecx, eax
mov eax, dword [0x48a988]
imul eax, ecx
mov dword [0x48a988], eax
push ebx
push 4
call fcn.0042862d
add esp, 8
mov ax, word [0x48d814]
lea ecx, [eax + 1]
mov word [0x48d814], cx
cwde
add eax, 0x952a846a
xor eax, 0x5b5516f3
and dword [0x486938], eax
mov edx, dword [esp + 0x34]
test edx, edx
je 0x402af2
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x30]
xor ebx, ebx
mov eax, dword [0x48bad4]
cmp eax, 0x5120390a
je 0x4026ad
mov ax, word [0x48c85e]
cwde
mov ecx, dword [0x48a650]
imul ecx, ecx, 0xe9231e23
xor ecx, eax
cmp ecx, 0x29ec0be5
jl 0x4026ad
mov eax, dword [0x48b9ec]
mov eax, dword [0x48a3b8]
xor eax, 0x3e89db46
mov ecx, dword [0x48768c]
add ecx, 0xbe979df4
cmp eax, ecx
jle 0x4026f0
mov ax, word [0x48cdd6]
dec eax
mov word [0x48cdd6], ax
cwde
add eax, 0x3614c324
mov ecx, dword [0x48b8cc]
or ecx, eax
or ecx, 0x2ea32fcb
mov dword [0x48b8cc], ecx
jmp 0x4026fa
or dword [0x4891d8], 0xd63849d8
dec edx
mov al, byte [ebp]
mov byte [esp + ebx + 0x19], al
mov eax, dword [0x48b618]
mov ecx, dword [0x487ae4]
shl eax, 6
neg eax
lea eax, [ecx + eax - 0x61a6115f]
mov dword [0x487ae4], eax
inc ebx
mov ax, word [0x48e4c2]
cwde
mov ecx, dword [0x48b770]
lea eax, [eax + ecx + 0x4bf31ea5]
mov dword [0x48b770], eax
mov eax, dword [0x488b38]
lea ecx, [eax + 1]
mov dword [0x488b38], ecx
mov ecx, dword [0x4874e4]
not ecx
lea eax, [ecx + eax + 1]
and eax, 0x187642fe
mov ecx, dword [0x486e9c]
imul ecx, eax
mov dword [0x486e9c], ecx
cmp ebx, 3
jne 0x402a50
mov dword [esp + 4], edx
mov eax, dword [0x488970]
add eax, 0xc1787bd7
mov dword [0x4874c0], eax
mov al, byte [esp + 0x19]
shr al, 2
mov byte [esp + 0x15], al
mov eax, dword [0x486e7c]
not eax
mov ecx, dword [0x48aac4]
sar ecx, 2
imul ecx, eax
cmp ecx, 0xf4624a04
jl 0x4027db
mov eax, dword [0x48694c]
lea ecx, [eax + 1]
mov dword [0x48694c], ecx
add eax, 0x76efbc52
mov ecx, dword [0x489680]
sar ecx, 9
mov edx, 0xaf8b8b14
sub edx, ecx
and edx, 0x1c1822dd
cmp eax, edx
jl 0x4027db
dec dword [0x48b504]
mov al, byte [esp + 0x19]
shl al, 4
and al, 0x30
mov byte [esp + 0x16], al
mov eax, dword [0x4889f8]
mov ecx, 0x366ce134
sub ecx, eax
mov eax, dword [0x489edc]
lea edx, [eax - 1]
mov dword [0x489edc], edx
lea eax, [ecx + eax - 1]
mov cx, word [0x48eca8]
add ecx, eax
mov word [0x48eca8], cx
mov al, byte [esp + 0x1a]
shr al, 4
add byte [esp + 0x16], al
mov ax, word [0x48daea]
cwde
mov ecx, dword [0x48ae8c]
imul ecx, eax
mov dword [0x48ae8c], ecx
mov al, byte [esp + 0x1a]
shl al, 2
and al, 0x3c
mov byte [esp + 0x17], al
and dword [0x48b430], 0x1ee7b3fd
mov al, byte [esp + 0x1b]
shr al, 6
add byte [esp + 0x17], al
mov ax, word [0x48c924]
cwde
shr eax, 3
mov ecx, dword [0x488f20]
inc ecx
mov dword [0x488f20], ecx
or ecx, eax
mov ax, word [0x48e200]
sub eax, ecx
mov word [0x48e200], ax
mov al, byte [esp + 0x1b]
and al, 0x3f
mov byte [esp + 0x18], al
and dword [0x48906c], 0x13907524
xor dword [0x48a978], 0xe1437f74
xor ebx, ebx
mov eax, dword [0x48b3ec]
add eax, 0xf2f1ee1b
xor eax, 0x434a1774
mov ecx, dword [0x489a30]
imul ecx, eax
mov dword [0x489a30], ecx
cmp byte [esp + 0x38], 0
je 0x402906
movzx eax, byte [esp + ebx + 0x15]
cmp eax, 0x3e
jb 0x402906
mov eax, dword [0x4884e8]
movzx eax, byte [esp + ebx + 0x15]
cmp eax, 0x3e
jne 0x40294f
mov ax, word [0x48ef8c]
or eax, 0x17c0
mov word [0x48ef8c], ax
mov ecx, edi
lea eax, [esp + 0x11]
push eax
call fcn.00417278
mov ax, word [0x48ed36]
jmp 0x402998
mov eax, dword [0x489570]
mov cx, word [0x48ed26]
movsx ecx, cx
mov edx, 0x7692f0d7
sub edx, ecx
mov ecx, dword [0x48a588]
xor edx, eax
xor edx, ecx
mov dword [0x48a588], edx
movzx eax, byte [esp + ebx + 0x15]
movsx eax, byte [esi + eax]
mov ecx, edi
push eax
call fcn.0041ef9c
mov eax, dword [0x48b130]
imul eax, eax, 0x1b877246
mov dword [0x48b130], eax
jmp 0x4029a8
mov eax, dword [0x48a758]
sar eax, 7
add eax, 0x9f919c71
cmp eax, 0x692c7ba7
jg 0x402974
mov ax, word [0x48d7b8]
and eax, 0x8bf7
mov word [0x48d7b8], ax
mov ecx, edi
lea eax, [esp + 0xd]
push eax
call fcn.00417278
mov ax, word [0x48ec4e]
cwde
sar eax, 1
mov ecx, dword [0x48af1c]
imul ecx, eax
mov dword [0x48af1c], ecx
mov eax, dword [0x487b28]
imul eax, eax, 0xda841a0d
mov dword [0x487b28], eax
mov eax, dword [0x48a5a4]
not eax
and eax, 0xd3d642b5
mov ecx, dword [0x48b6ec]
shl ecx, 7
cmp eax, ecx
jne 0x4029dd
mov eax, dword [0x487dc8]
dec eax
mov dword [0x487dc8], eax
mov ecx, dword [0x488a0c]
imul ecx, eax
mov dword [0x488a0c], ecx
jmp 0x4029ee
mov ax, word [0x48d146]
or eax, 0xa306
mov word [0x48d146], ax
inc ebx
mov ax, word [0x48e95e]
cwde
add eax, 0x32280681
or eax, 0x277c715
cmp eax, 0x52c651df
jl 0x402a2d
mov ax, word [0x48c644]
inc eax
mov word [0x48c644], ax
cwde
add eax, 0x3a686b09
xor eax, 0x85e8f6ff
mov ecx, dword [0x48ba6c]
sub ecx, eax
mov dword [0x48ba6c], ecx
cmp ebx, 4
jne 0x4028a0
xor dword [0x48c164], 0xb72bbe23
add dword [0x489c60], 0xff1df8ff
xor ebx, ebx
mov edx, dword [esp + 4]
inc ebp
mov eax, dword [0x489d8c]
dec eax
mov dword [0x489d8c], eax
and eax, 0x55d394d4
mov ecx, dword [0x4897c4]
sub ecx, eax
mov dword [0x4897c4], ecx
test edx, edx
jne 0x40267f
xor dword [0x48a1f0], 0xc3f482d0
test ebx, ebx
lea ebp, [esp + 9]
je 0x402ecf
mov eax, dword [0x48aff4]
lea eax, [eax*4 + 0x45a11b8]
xor eax, 0x8c4fdf63
cmp eax, 0xe010e6d2
jl 0x402aab
mov ax, word [0x48ee90]
mov eax, dword [0x487950]
mov ecx, dword [0x486750]
imul ecx, ecx, 0x44f2d9a5
add ecx, 0xf0b1466e
cmp eax, ecx
je 0x402b06
mov eax, dword [0x4889f8]
lea ecx, [eax + 1]
mov dword [0x4889f8], ecx
imul eax, eax, 0xebf4989e
add eax, 0xbb872c3
cmp eax, 0x3ed9848
jg 0x402b01
or dword [0x48913c], 0x2c4825
jmp 0x402b06
xor dword [0x48a1f0], 0xc3f482d0
jmp 0x402ecf
mov eax, dword [0x489d80]
cmp ebx, 2
jg 0x402b67
mov eax, ebx
mov cx, word [0x48e10a]
movsx ecx, cx
imul ecx, ecx, 0xf9401ca2
add ecx, 0xde925d31
xor dword [0x487d08], ecx
mov byte [esp + eax + 0x19], 0
mov cx, word [0x48ccc8]
add ecx, 0x78ea
mov word [0x48ccc8], cx
inc eax
mov cx, word [0x48ed88]
dec ecx
mov word [0x48ed88], cx
mov dx, word [0x48d09c]
or edx, ecx
mov word [0x48d09c], dx
cmp eax, 3
jne 0x402b0d
mov ax, word [0x48f002]
cwde
mov ecx, dword [0x489bc0]
inc ecx
mov dword [0x489bc0], ecx
mov edx, dword [0x48abec]
xor edx, eax
xor edx, ecx
cmp edx, 0xd248ce84
jg 0x402ba8
mov eax, dword [0x4877bc]
lea ecx, [eax + 1]
mov dword [0x4877bc], ecx
add eax, 0xd96dc457
and dword [0x48ac48], eax
jmp 0x402bb8
mov eax, dword [0x48bd28]
imul eax, eax, 0x3a1bcd42
mov dword [0x48bd28], eax
mov al, byte [esp + 0x19]
shr al, 2
mov byte [esp + 0x15], al
mov eax, dword [0x489600]
imul eax, eax, 0x86ec788c
mov dword [0x489600], eax
mov al, byte [esp + 0x19]
shl al, 4
and al, 0x30
mov byte [esp + 0x16], al
mov eax, dword [0x486988]
cmp eax, 0xd6c15d1f
jg 0x402bfd
mov ax, word [0x48d35a]
xor eax, 0xb4
mov word [0x48d35a], ax
mov al, byte [esp + 0x1a]
shr al, 4
add byte [esp + 0x16], al
inc dword [0x487d30]
mov eax, dword [0x4869bc]
mov ax, word [0x48c33a]
dec eax
mov word [0x48c33a], ax
cwde
mov ecx, dword [0x48a014]
sub eax, ecx
or eax, 0xe212ecbe
and dword [0x48bc80], eax
mov al, byte [esp + 0x1a]
shl al, 2
and al, 0x3c
mov byte [esp + 0x17], al
mov dword [0x488810], 0xf002c98
mov al, byte [esp + 0x1b]
shr al, 6
add byte [esp + 0x17], al
and dword [0x48a4f0], 0xa331027e
mov al, byte [esp + 0x1b]
and al, 0x3f
mov byte [esp + 0x18], al
or dword [0x4894e4], 0xa8527477
add dword [0x48be58], 0x71a3d7fe
mov ax, word [0x48c5b2]
and eax, 0x75f7
mov word [0x48c5b2], ax
test ebx, ebx
mov dword [esp + 4], ebx
js 0x402dde
mov eax, dword [esp + 4]
lea ebx, [eax + 1]
lea ebp, [esp + 0x15]
jmp 0x402cfc
mov eax, dword [0x486d54]
inc eax
mov dword [0x486d54], eax
and eax, 0x5e6a00a0
or eax, 0x2190cd0c
mov dword [0x487ff8], eax
mov ecx, edi
lea eax, [esp + 0xd]
push eax
call fcn.00417278
add dword [0x48adec], 0xf9b27b7a
mov eax, dword [0x48a588]
xor eax, 0xe81063d9
cmp eax, 0x79162d32
jl 0x402daa
mov dword [0x4893d0], 0x5d0d60c5
jmp 0x402daa
mov dword [0x48bb70], 0xc94180cc
cmp byte [esp + 0x38], 0
je 0x402d73
movzx eax, byte [ebp]
cmp eax, 0x3e
jb 0x402d73
mov word [0x48e948], 0xd66a
movzx eax, byte [ebp]
cmp eax, 0x3e
jne 0x402ca8
mov eax, dword [0x486548]
add eax, 0xd4f8f7fc
mov cx, word [0x48cf54]
inc ecx
mov word [0x48cf54], cx
movsx ecx, cx
or ecx, eax
cmp ecx, 0x1fbf9bb8
jl 0x402d58
add dword [0x4879d0], 0xeb9fffd0
mov ecx, edi
lea eax, [esp + 0x11]
push eax
call fcn.00417278
or dword [0x488478], 0x70201142
jmp 0x402cd8
mov eax, dword [0x48b084]
add dword [0x48a90c], eax
movzx eax, byte [ebp]
movsx eax, byte [esi + eax]
mov ecx, edi
push eax
call fcn.0041ef9c
mov eax, dword [0x48bd30]
sar eax, 5
mov ecx, dword [0x48669c]
or ecx, eax
or ecx, 0x1ab19030
mov dword [0x48669c], ecx
mov ax, word [0x48d1ea]
xor eax, 0x8a4b
mov word [0x48d1ea], ax
add dword [0x488a5c], 0x3f9c4040
mov ax, word [0x48c5b2]
and eax, 0x75f7
mov word [0x48c5b2], ax
inc ebp
dec ebx
jne 0x402cfc
mov ax, word [0x48d2a4]
or eax, 0x560c
mov cx, word [0x48df62]
sub ecx, eax
mov word [0x48df62], cx
mov eax, dword [esp + 4]
cmp eax, 2
lea ebp, [esp + 9]
jg 0x402ec5
mov ebx, 3
sub ebx, eax
mov eax, dword [0x486c58]
add eax, 0x246f22b5
or eax, 0x91b3096c
mov dword [0x48b644], eax
xor dword [0x487598], 0x1e2f630f
cmp byte [esp + 0x38], 0
je 0x402e63
mov ax, word [0x48d7ba]
or eax, 0xb0b6
mov word [0x48d7ba], ax
mov ecx, edi
push ebp
call fcn.00417278
mov ax, word [0x48ce78]
cwde
add eax, 0x826ed646
and dword [0x4890ac], eax
jmp 0x402e9d
mov eax, dword [0x48a14c]
add eax, 0xc8220133
mov cx, word [0x48d312]
imul ecx, eax
mov word [0x48d312], cx
mov ecx, edi
push 0x3d
call fcn.0041ef9c
mov eax, dword [0x4870c4]
imul eax, eax, 0x4028adc2
xor eax, 0xfd2d80c
add dword [0x48762c], eax
mov ax, word [0x48c84a]
cwde
sar eax, 2
mov ecx, dword [0x48669c]
lea edx, [ecx - 1]
mov dword [0x48669c], edx
and eax, ecx
xor dword [0x489e7c], eax
dec ebx
jne 0x402e11
and dword [0x48b574], 0x30c247f7
and dword [0x48a748], 0x12c1ca8c
push esi
push 0x41
call fcn.0042862d
add esp, 8
mov eax, dword [0x48b958]
cmp eax, 0x90ed233
jne 0x402f0e
mov ax, word [0x48c6e6]
cwde
imul eax, eax, 0xd28c2db8
cmp eax, 0x1c30a93b
jg 0x402f0e
add dword [0x487444], 0x24ec37ed
mov esi, 4
push esi
lea eax, [esp + 0x15]
push eax
call fcn.0042076e
add esp, 8
xor dword [0x48ad00], 0xe4210020
push esi
lea eax, [esp + 0x11]
push eax
call fcn.0042076e
add esp, 8
mov eax, dword [0x4894a0]
mov ecx, 0x46cf4de8
sub ecx, eax
xor ecx, 0xc6a56f8f
mov eax, dword [0x486520]
or eax, 0xd7436d89
cmp ecx, eax
jge 0x402f72
mov ax, word [0x48f01e]
cwde
or eax, 0xf47b1e7e
xor eax, 0xb84e181
and dword [0x489f3c], eax
jmp 0x402fa3
mov eax, dword [0x486260]
not eax
mov ecx, dword [0x487664]
lea edx, [ecx - 1]
mov dword [0x487664], edx
and eax, ecx
cmp eax, 0xca3ce8ee
jl 0x402fa3
mov ax, word [0x48e472]
inc eax
mov word [0x48e472], ax
mov eax, dword [0x488444]
push 4
push ebp
call fcn.0042076e
add esp, 8
mov ax, word [0x48eb66]
mov eax, dword [0x4881fc]
imul eax, eax, 0x772a4156
mov dword [0x4881fc], eax
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret