Function at 0x421490
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd8
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xec]
lea ecx, [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x100001
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 0x4021
call fcn.0043df00
xor edx, edx
cmp eax, 0
jl 0x421d77
mov dword [esp], esi
call fcn.00414de0
shl eax, 1
mov word [esp + 0xb8], ax
movzx eax, ax
mov ecx, eax
and ecx, 2
or eax, 2
add ecx, eax
mov word [esp + 0xba], cx
mov dword [esp + 0xbc], esi
mov dword [esp], 0x848
call fcn.0043a000
mov dword [esp + 0x74], eax
mov esi, dword [esp + 0x88]
mov al, byte [esp + 0x90]
mov byte [esp + 0xac], al
mov byte [esp + 0x5c], 0x19
mov byte [esp + 0x5d], 0x18
mov byte [esp + 0x5e], 0x17
mov byte [esp + 0x5f], 0x16
mov eax, 4
mov byte [esp + eax + 0x5c], 0
add eax, 1
cmp eax, 6
jne 0x42154a
xor eax, eax
cmp eax, 6
jae 0x4215b1
movzx edi, byte [esp + eax + 0x5c]
mov edx, eax
add edx, 0xb6
mov ebx, 0x2f2f3649
sub ebx, eax
mov ecx, 0x2f2f3649
sub ecx, eax
or ebx, ecx
xor ebx, 0xffffffff
mov ecx, edi
or ecx, ebx
and edx, edi
sub ecx, edx
add ecx, 0x7979b24f
mov edx, ecx
xor edx, 0x7ffffffe
mov edi, ecx
or edi, 1
and edi, edx
shl edi, 1
mov edx, ecx
and edx, edi
or ecx, edi
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x5c], cl
add eax, 1
jmp 0x421559
mov edi, dword [esp + 0x5c]
xor ebx, ebx
mov ecx, 2
cmp ebx, dword [0x44aea0]
jb 0x4215c9
jmp 0x42168a
mov ecx, dword [0x44aea4]
cmp dword [ecx + ebx*8], 0x7be1e2d2
sete dl
test dl, 1
jne 0x4215e3
jmp 0x421679
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
jne 0x4215f5
mov ecx, 2
jmp 0x42167b
mov eax, dword [0x44aea8]
mov byte [esp + 0x3b], dl
xor edx, edx
lea edx, [esp + 0xd0]
lea ebp, [esp + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x2c
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], 0
call fcn.0043b9a0
mov dl, byte [esp + 0x3b]
mov ecx, 1
jmp 0x42167b
xor ecx, ecx
test dl, 1
je 0x421682
jmp 0x42168a
add ebx, 1
jmp 0x4215b7
cmp ecx, 2
je 0x421691
mov edi, eax
cmp edi, 0
setge al
xor ecx, ecx
test al, 1
jne 0x4216a2
jmp 0x421c54
xor ebx, ebx
xor ecx, ecx
xor esi, esi
mov eax, dword [esp + 0x74]
jmp 0x4216ae
mov edi, dword [eax + 0x3c]
shr edi, 1
mov edx, eax
add edx, 0x38
mov dword [esp + 0xcc], edx
mov dword [esp + 0x68], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x4218f4
mov al, byte [esp + 0x84]
mov byte [esp + 0x94], al
mov byte [esp + 0x50], 0x16
mov byte [esp + 0x51], 0x39
mov byte [esp + 0x52], 0x3a
mov byte [esp + 0x53], 0x3b
mov eax, 4
mov byte [esp + eax + 0x50], 0
add eax, 1
cmp eax, 5
jne 0x4216fb
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x3c], ecx
xor eax, eax
cmp eax, 5
jae 0x421771
movzx edx, byte [esp + eax + 0x50]
mov ecx, eax
add ecx, 0xef75b0f8
or ecx, edx
mov ebx, eax
add ebx, 0xf8
and ebx, edx
sub ecx, ebx
mov edx, ecx
and edx, 0x3d
mov ebx, ecx
and ebx, 2
xor ebx, 2
mov ebp, ecx
and ebp, 0x3d
imul ebx, ebp
mov ebp, ecx
and ebp, 2
or edx, 2
imul edx, ebp
add edx, ebx
xor ecx, 0x3f
add edx, ecx
add dl, 1
mov byte [esp + eax + 0x50], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x421715
mov ebp, dword [esp + 0x68]
add ebp, 0x44
lea eax, [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00421d90
cmp eax, 0
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xb4]
je 0x4218f4
mov al, byte [esp + 0x80]
mov byte [esp + 0x98], al
mov byte [esp + 0x6c], 0x30
mov byte [esp + 0x6d], 0xdf
mov byte [esp + 0x6e], 0x2e
mov byte [esp + 0x6f], 0xc1
mov byte [esp + 0x70], 0xc2
mov byte [esp + 0x71], 0xc3
mov eax, 6
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 7
jne 0x4217d1
mov dword [esp + 0x40], esi
xor eax, eax
cmp eax, 7
jae 0x421821
movzx ebx, byte [esp + eax + 0x6c]
mov ecx, 0x51
sub ecx, eax
or ecx, ebx
mov edx, 0x51
sub edx, eax
mov esi, 0x51
sub esi, eax
or edx, esi
and edx, ebx
mov ebx, dword [esp + 0xb4]
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x90
mov byte [esp + eax + 0x6c], dl
add eax, 1
jmp 0x4217e4
lea eax, [esp + 0x6c]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00421d90
cmp eax, 0
mov esi, dword [esp + 0x40]
jne 0x421847
mov ecx, dword [esp + 0x3c]
jmp 0x4218f4
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x421862
mov ecx, eax
mov dword [esp], ecx
call fcn.00408620
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, eax
call fcn.00414a60
mov word [eax], 0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0xcc]
mov edx, dword [eax]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0xf8]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], edi
and eax, 1
mov dword [esp + 4], eax
call dword [esp + 0xf4]
and al, 1
movzx eax, al
mov ecx, dword [esp + 0x3c]
and cl, 1
movzx ecx, cl
and ecx, ecx
xor ecx, 0xffffffff
and eax, eax
xor eax, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0
setne al
and al, 1
mov esi, eax
mov dword [esp], edi
call fcn.00408630
mov ecx, esi
mov esi, dword [esp + 0x40]
jmp 0x4218f4
cmp esi, 0
je 0x4218fd
mov edi, ebx
jmp 0x42192c
mov esi, ecx
mov dword [esp], 0x10900
call fcn.0043a000
mov edi, eax
cmp edi, 0
jne 0x421924
mov eax, 2
mov edi, dword [esp + 0x68]
mov ecx, esi
xor esi, esi
jmp 0x421c46
mov eax, edi
mov ecx, esi
mov esi, eax
jmp 0x42192c
cmp edi, esi
jne 0x421c33
mov al, byte [esp + 0x7c]
mov byte [esp + 0x9c], al
mov byte [esp + 0x4a], 0x35
mov byte [esp + 0x4b], 0x2f
mov byte [esp + 0x4c], 0x36
mov byte [esp + 0x4d], 8
mov eax, 4
mov byte [esp + eax + 0x4a], 0
add eax, 1
cmp eax, 6
jne 0x421958
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ecx
xor eax, eax
cmp eax, 6
jae 0x4219bb
movzx edx, byte [esp + eax + 0x4a]
mov ecx, eax
add ecx, 0xdd6313dd
xor ecx, edx
add ecx, 0x85563d1c
mov edx, ecx
shl edx, 1
and edx, 0x1f2247f6
xor ecx, 0x8f9123fb
add ecx, edx
mov edx, ecx
add edx, 0x11
mov esi, 0xe
sub esi, ecx
and esi, 0x10
and edx, 0xef
sub edx, esi
mov byte [esp + eax + 0x4a], dl
add eax, 1
jmp 0x42196f
mov eax, dword [esp + 0x4a]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc4], eax
mov al, byte [esp + 0x8c]
mov byte [esp + 0xb0], al
mov byte [esp + 0x56], 0x19
mov byte [esp + 0x57], 0x18
mov byte [esp + 0x58], 0x17
mov byte [esp + 0x59], 0x16
mov eax, 4
mov byte [esp + eax + 0x56], 0
add eax, 1
cmp eax, 6
jne 0x4219fb
xor eax, eax
cmp eax, 6
jae 0x421a62
movzx esi, byte [esp + eax + 0x56]
mov edx, eax
add edx, 0xb6
mov ebx, 0x2f2f3649
sub ebx, eax
mov ecx, 0x2f2f3649
sub ecx, eax
or ebx, ecx
xor ebx, 0xffffffff
mov ecx, esi
or ecx, ebx
and edx, esi
sub ecx, edx
add ecx, 0x7979b24f
mov edx, ecx
xor edx, 0x7ffffffe
mov esi, ecx
or esi, 1
and esi, edx
shl esi, 1
mov edx, ecx
and edx, esi
or ecx, esi
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x56], cl
add eax, 1
jmp 0x421a0a
mov esi, dword [esp + 0x56]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44aea0]
jb 0x421a7a
jmp 0x421b39
mov ecx, dword [0x44aea4]
cmp dword [ecx + ebp*8], 0x7be1e2d2
sete bl
test bl, 1
jne 0x421a94
jmp 0x421b28
mov ecx, dword [ecx + ebp*8 + 4]
cmp ecx, esi
jne 0x421aa6
mov ecx, 2
jmp 0x421b2a
mov eax, dword [0x44aea8]
xor edx, edx
lea edx, [esp + 0xd0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
lea eax, [esp + 0xb8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0043b9a0
mov ecx, 1
jmp 0x421b2a
xor ecx, ecx
test bl, 1
je 0x421b31
jmp 0x421b39
add ebp, 1
jmp 0x421a68
cmp ecx, 2
je 0x421b40
mov esi, eax
mov al, byte [esp + 0x78]
mov byte [esp + 0xa0], al
mov byte [esp + 0x44], 0x83
mov byte [esp + 0x45], 0x87
mov byte [esp + 0x46], 0x88
mov byte [esp + 0x47], 9
mov eax, 4
mov byte [esp + eax + 0x44], 0
add eax, 1
cmp eax, 5
jne 0x421b64
xor eax, eax
cmp eax, 5
jae 0x421bc2
movzx edx, byte [esp + eax + 0x44]
mov ecx, eax
add ecx, 0xdc6b1336
mov ebx, ecx
and ebx, edx
shl ebx, 1
sub ecx, ebx
add ecx, edx
mov edx, ecx
and edx, 0x4d
mov ebx, ecx
and ebx, 0x4d
mov ebp, ecx
and ebp, 2
xor ebp, 2
imul ebp, ebx
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
add edx, ebp
xor ecx, 0x4f
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x421b73
mov eax, dword [esp + 0x44]
cmp esi, eax
jne 0x421bfe
xor eax, eax
mov esi, edi
jmp 0x421bd0
mov ecx, esi
mov edx, dword [ecx]
cmp edx, 0
setne bl
test bl, 1
jne 0x421be1
jmp 0x421bef
shr edx, 2
shl edx, 2
mov esi, ecx
add esi, edx
mov eax, ecx
jmp 0x421bd0
cmp eax, 0
je 0x421bfa
mov dword [eax], 0
xor esi, esi
jmp 0x421bfe
cmp esi, 0
jge 0x421c1a
mov esi, dword [esp + 0x40]
mov dword [esp], esi
call fcn.0043a020
mov eax, 2
mov ecx, dword [esp + 0x3c]
jmp 0x421c26
xor eax, eax
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
jmp 0x421c26
cmp eax, 0
je 0x421c33
mov ebx, edi
mov edi, dword [esp + 0x68]
jmp 0x421c46
mov eax, dword [edi]
cmp eax, 0
je 0x421c40
mov ebx, edi
add ebx, eax
jmp 0x421c44
mov ebx, esi
jmp 0x421c44
xor eax, eax
test eax, eax
mov eax, edi
je 0x4216ae
jmp 0x421c52
jmp 0x421c54
mov esi, ecx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.0043a020
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc0], eax
mov al, byte [esp + 0xa4]
mov byte [esp + 0xa8], al
mov byte [esp + 0x62], 0x19
mov byte [esp + 0x63], 0x18
mov byte [esp + 0x64], 0x17
mov byte [esp + 0x65], 0x16
mov eax, 4
mov byte [esp + eax + 0x62], 0
add eax, 1
cmp eax, 6
jne 0x421c97
xor eax, eax
cmp eax, 6
jae 0x421cfe
movzx edi, byte [esp + eax + 0x62]
mov edx, eax
add edx, 0xb6
mov ebx, 0x2f2f3649
sub ebx, eax
mov ecx, 0x2f2f3649
sub ecx, eax
or ebx, ecx
xor ebx, 0xffffffff
mov ecx, edi
or ecx, ebx
and edx, edi
sub ecx, edx
add ecx, 0x7979b24f
mov edx, ecx
xor edx, 0x7ffffffe
mov edi, ecx
or edi, 1
and edi, edx
shl edi, 1
mov edx, ecx
and edx, edi
or ecx, edi
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x62], cl
add eax, 1
jmp 0x421ca6
mov edi, dword [esp + 0x62]
xor ebp, ebp
mov edx, esi
mov eax, 2
cmp ebp, dword [0x44aea0]
jb 0x421d15
jmp 0x421d72
mov ecx, dword [0x44aea4]
cmp dword [ecx + ebp*8], 0xb430e561
sete bl
xor eax, eax
test bl, 1
jne 0x421d2e
jmp 0x421d66
mov ecx, dword [ecx + ebp*8 + 4]
mov eax, 2
cmp ecx, edi
je 0x421d66
mov eax, dword [0x44aea8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], eax
call fcn.0043b9a0
mov edx, esi
mov eax, 1
test bl, 1
je 0x421d6d
jmp 0x421d72
add ebp, 1
jmp 0x421d06
cmp eax, 2
jne 0x421d77
and dl, 1
movzx eax, dl
add esp, 0xd8
pop esi
pop edi
pop ebx
pop ebp
ret