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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xcc
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x7c]
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.0043d520
cmp eax, 0
setge al
xor ecx, ecx
test al, 1
jne 0x421641
jmp 0x421e46
mov dword [esp], esi
call fcn.00414a00
shl eax, 1
mov word [esp + 0xac], ax
movzx eax, ax
sub eax, 0xfffffffe
mov word [esp + 0xae], ax
mov dword [esp + 0xb0], esi
mov dword [esp], 0x848
call fcn.00439b40
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x7c]
mov al, byte [esp + 0x84]
mov byte [esp + 0xa0], al
mov byte [esp + 0x50], 0x63
mov byte [esp + 0x51], 0x62
mov byte [esp + 0x52], 0x61
mov byte [esp + 0x53], 0x60
xor eax, eax
cmp eax, 4
jae 0x42171c
movzx edx, byte [esp + eax + 0x50]
mov ecx, eax
add ecx, 0x86ceb5bc
mov edi, eax
add edi, 0xbc
and edi, edx
mov ebx, edi
and ebx, 2
xor ebx, 2
mov ebp, edi
and ebp, 0xfd
imul ebp, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edi, ebp
add ecx, edx
sub ecx, edi
mov edx, ecx
and edx, 0x1d
mov edi, ecx
and edi, 2
xor edi, 2
mov ebx, ecx
and ebx, 0x1d
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
xor ecx, 0x1f
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x50], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4216a0
mov edi, dword [esp + 0x50]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44965c]
jb 0x421734
jmp 0x4217ec
mov edx, dword [0x449660]
cmp dword [edx + ebp*8], 0x7be1e2d2
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x421754
jmp 0x4217db
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x4217db
mov eax, dword [0x449664]
xor ecx, ecx
lea ecx, [esp + 0xc4]
lea ebx, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], edx
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], ecx
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0
call fcn.0043b480
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x4217e4
jmp 0x4217ec
add ebp, 1
jmp 0x421722
cmp ecx, 2
je 0x4217f3
mov edi, eax
xor esi, esi
cmp edi, 0
jl 0x421d2c
xor ebx, ebx
xor esi, esi
xor ebp, ebp
mov eax, dword [esp + 0x68]
jmp 0x42180a
mov dword [esp + 0x58], ebp
mov dword [esp + 0x3c], esi
mov edi, dword [eax + 0x3c]
shr edi, 1
mov ecx, eax
add ecx, 0x38
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x64], eax
mov eax, dword [eax + 0x38]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x400
add eax, ecx
cmp eax, 0
jne 0x421a1b
mov dword [esp + 0xa8], ebx
mov al, byte [esp + 0x78]
mov byte [esp + 0x88], al
mov byte [esp + 0x48], 0x84
mov byte [esp + 0x49], 0xab
mov byte [esp + 0x4a], 0xac
mov byte [esp + 0x4b], 0xad
xor eax, eax
cmp eax, 4
jae 0x4218aa
mov dl, byte [esp + eax + 0x48]
movzx ebx, dl
mov ecx, eax
add ecx, 0x3718447a
mov ebp, ecx
xor ebp, ebx
xor ebp, 0xffffffff
mov ebx, eax
add ebx, 0x7b
mov esi, 0x48e7bb85
sub esi, eax
or esi, ebp
add esi, ebx
shl esi, 1
xor esi, 0xffffffff
add ecx, esi
add cl, dl
add cl, 0x31
mov byte [esp + eax + 0x48], cl
add eax, 1
jmp 0x42186a
mov ebp, dword [esp + 0x64]
add ebp, 0x44
mov ebx, dword [esp + 0xa8]
lea eax, [esp + 0x48]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00421e60
cmp eax, 0
je 0x421a1b
mov al, byte [esp + 0x74]
mov byte [esp + 0x8c], al
mov byte [esp + 0x5e], 0xd2
mov byte [esp + 0x5f], 0x3d
mov byte [esp + 0x60], 0xd0
mov byte [esp + 0x61], 0x3f
mov byte [esp + 0x62], 0
mov byte [esp + 0x63], 1
xor eax, eax
cmp eax, 6
jae 0x42194a
movzx edx, byte [esp + eax + 0x5e]
mov ecx, eax
add ecx, 0x9da317dc
mov esi, edx
xor esi, 0xffffffff
and ecx, esi
mov esi, eax
add esi, 0x9da317dc
mov ebx, eax
add ebx, 0x9da317dc
and esi, ebx
xor esi, 0xffffffff
and edx, esi
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x3e
xor ecx, 0x1f
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x5e], cl
add eax, 1
jmp 0x421900
lea eax, [esp + 0x5e]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00421e60
cmp eax, 0
mov ebx, dword [esp + 0xa8]
jne 0x421977
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x58]
jmp 0x421a23
xor ecx, ecx
sub ecx, edi
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x421998
mov ecx, eax
mov dword [esp], ecx
call fcn.00407ff0
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, eax
call fcn.00414630
mov word [eax], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0xc0]
mov edx, dword [eax]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0xec]
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 + 0xe8]
and al, 1
movzx eax, al
mov ecx, dword [esp + 0x3c]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne al
and al, 1
mov esi, eax
mov dword [esp], edi
call fcn.00408000
mov ebp, dword [esp + 0x58]
jmp 0x421a23
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x58]
cmp ebp, 0
je 0x421a2c
mov edi, ebx
jmp 0x421a5a
mov dword [esp], 0x10900
call fcn.00439b40
mov edi, eax
cmp edi, 0
sete al
test al, 1
jne 0x421a46
jmp 0x421a56
xor ebp, ebp
mov eax, 2
mov edi, dword [esp + 0x64]
jmp 0x421d1e
mov ebp, edi
jmp 0x421a5a
cmp edi, ebp
jne 0x421d0b
mov dword [esp + 0x3c], esi
mov al, byte [esp + 0x70]
mov byte [esp + 0x90], al
mov byte [esp + 0x44], 0x2c
mov byte [esp + 0x45], 0x24
mov byte [esp + 0x46], 0x2f
mov byte [esp + 0x47], 0x2f
xor eax, eax
cmp eax, 4
jae 0x421abb
movzx edx, byte [esp + eax + 0x44]
mov ecx, eax
add ecx, 0x4c
mov esi, 0xb3
sub esi, eax
mov ebx, 0xb3
sub ebx, eax
and esi, ebx
or ecx, edx
xor edx, 0xffffffff
or esi, edx
and ecx, esi
add cl, 0xa0
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x421a87
mov eax, dword [esp + 0x44]
mov dword [esp + 0xbc], eax
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xb8], eax
mov al, byte [esp + 0x80]
mov byte [esp + 0xa4], al
mov byte [esp + 0x4c], 0x63
mov byte [esp + 0x4d], 0x62
mov byte [esp + 0x4e], 0x61
mov byte [esp + 0x4f], 0x60
xor eax, eax
cmp eax, 4
jae 0x421b75
movzx edx, byte [esp + eax + 0x4c]
mov ecx, eax
add ecx, 0x86ceb5bc
mov esi, eax
add esi, 0xbc
and esi, edx
mov ebx, esi
and ebx, 2
xor ebx, 2
mov ebp, esi
and ebp, 0xfd
imul ebp, ebx
mov ebx, esi
and ebx, 2
or esi, 2
imul esi, ebx
add esi, ebp
add ecx, edx
sub ecx, esi
mov edx, ecx
and edx, 0x1d
mov esi, ecx
and esi, 2
xor esi, 2
mov ebx, ecx
and ebx, 0x1d
imul ebx, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, ebx
xor ecx, 0x1f
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x4c], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x421af9
mov esi, dword [esp + 0x4c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44965c]
jb 0x421b8d
jmp 0x421c49
mov edx, dword [0x449660]
cmp dword [edx + ebp*8], 0x7be1e2d2
sete bl
xor ecx, ecx
test bl, 1
jne 0x421ba9
jmp 0x421c3a
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x421c3a
mov eax, dword [0x449664]
xor ecx, ecx
lea ecx, [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
lea eax, [esp + 0xac]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0043b480
mov ecx, 1
test bl, 1
je 0x421c41
jmp 0x421c49
add ebp, 1
jmp 0x421b7b
cmp ecx, 2
mov ebp, dword [esp + 0x58]
je 0x421c54
mov esi, eax
mov al, byte [esp + 0x6c]
mov byte [esp + 0x94], al
mov byte [esp + 0x40], 0x82
mov byte [esp + 0x41], pe_nt_image_headers32
mov byte [esp + 0x42], 0x79
mov byte [esp + 0x43], 0xfa
xor eax, eax
cmp eax, 4
jae 0x421caa
mov dl, byte [esp + eax + 0x40]
mov ebx, eax
and ebx, 0x81
xor ebx, 0x81
mov ecx, eax
and ecx, 0x7e
sub ecx, ebx
xor cl, dl
add cl, 8
mov byte [esp + eax + 0x40], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x421c75
mov eax, dword [esp + 0x40]
cmp esi, eax
jne 0x421cde
xor eax, eax
mov edx, edi
jmp 0x421cb8
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x421ccf
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x421cb8
cmp eax, 0
je 0x421cda
mov dword [eax], 0
xor esi, esi
jmp 0x421cde
cmp esi, 0
jge 0x421cf6
mov dword [esp], ebp
call fcn.00439b60
mov eax, 2
mov esi, dword [esp + 0x3c]
jmp 0x421cfe
xor eax, eax
mov esi, dword [esp + 0x3c]
jmp 0x421cfe
cmp eax, 0
je 0x421d0b
mov ebx, edi
mov edi, dword [esp + 0x64]
jmp 0x421d1e
mov eax, dword [edi]
cmp eax, 0
je 0x421d18
mov ebx, edi
add ebx, eax
jmp 0x421d1c
mov ebx, ebp
jmp 0x421d1c
xor eax, eax
test eax, eax
mov eax, edi
je 0x42180a
jmp 0x421d2a
jmp 0x421d2c
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00439b60
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xb4], eax
mov al, byte [esp + 0x98]
mov byte [esp + 0x9c], al
mov byte [esp + 0x54], 0x63
mov byte [esp + 0x55], 0x62
mov byte [esp + 0x56], 0x61
mov byte [esp + 0x57], 0x60
xor eax, eax
cmp eax, 4
jae 0x421de3
movzx edx, byte [esp + eax + 0x54]
mov ecx, eax
add ecx, 0x86ceb5bc
mov edi, eax
add edi, 0xbc
and edi, edx
mov ebx, edi
and ebx, 2
xor ebx, 2
mov ebp, edi
and ebp, 0xfd
imul ebp, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edi, ebp
add ecx, edx
sub ecx, edi
mov edx, ecx
and edx, 0x1d
mov edi, ecx
and edi, 2
xor edi, 2
mov ebx, ecx
and ebx, 0x1d
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
xor ecx, 0x1f
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x54], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x421d67
mov edi, dword [esp + 0x54]
xor ebp, ebp
mov ecx, esi
cmp ebp, dword [0x44965c]
jb 0x421df5
jmp 0x421e46
mov eax, dword [0x449660]
cmp dword [eax + ebp*8], 0xb430e561
sete bl
test bl, 1
jne 0x421e0b
jmp 0x421e3a
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x421e3a
mov ecx, dword [0x449664]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
call fcn.0043b480
mov ecx, esi
test bl, 1
je 0x421e41
jmp 0x421e46
add ebp, 1
jmp 0x421deb
and cl, 1
movzx eax, cl
add esp, 0xcc
pop esi
pop edi
pop ebx
pop ebp
ret