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

Disassembly:
push 0xffffffffffffffff
push 0x42c263
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
mov ebx, dword [esp + 0x78]
push ebp
push esi
push edi
call fcn.004102c0
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0
call fcn.0040f530
test al, al
je 0x40fe98
xor edi, edi
push 8
mov dword [esp + 0x5c], edi
call fcn.004259f0
mov ebx, eax
add esp, 4
mov dword [esp + 0x30], ebx
cmp ebx, edi
je 0x40feaf
xor eax, eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], 3
mov word [ebx], ax
mov dword [esp + 0x78], edi
push 8
mov dword [esp + 0x68], edi
call fcn.004259f0
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
cmp esi, edi
je 0x40fec4
xor ebp, ebp
xor ecx, ecx
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], 3
mov word [esi], cx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x78], 1
mov eax, dword [edx]
add eax, dword [esp + 0x20]
lea ecx, [esp + 0x34]
push ecx
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0040f3d0
mov byte [esp + 0x78], 2
xor ecx, ecx
mov word [ebx], cx
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
add eax, edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x2c], eax
mov edi, edx
cmp edx, eax
je 0x40f74d
lea ebx, [ebx]
mov al, byte [edi]
inc edi
cmp al, 0x80
jb 0x40f738
cmp al, 0xc0
jb 0x40f738
cmp al, 0xe0
jae 0x40f6c0
mov esi, 1
add al, 0x40
jmp 0x40f6f2
cmp al, 0xf0
jae 0x40f6cd
mov esi, 2
add al, 0x20
jmp 0x40f6f2
cmp al, 0xf8
jae 0x40f6da
mov esi, 3
add al, 0x10
jmp 0x40f6f2
cmp al, 0xfc
jae 0x40f6e7
mov esi, 4
add al, 8
jmp 0x40f6f2
cmp al, 0xfe
jae 0x40f738
mov esi, 5
add al, 4
movzx ecx, al
cmp edi, dword [esp + 0x2c]
je 0x40f719
mov al, byte [edi]
lea ebx, [eax + 0x80]
cmp bl, 0x3f
ja 0x40f719
movzx eax, al
add eax, 0xffffff80
shl ecx, 6
inc edi
or ecx, eax
dec esi
jne 0x40f6f5
jmp 0x40f71d
test esi, esi
jne 0x40f738
cmp ecx, 0x10000
jb 0x40f738
sub ecx, 0x10000
cmp ecx, 0x100000
jae 0x40f738
add ebp, 2
jmp 0x40f739
inc ebp
mov eax, dword [esp + 0x2c]
cmp edi, eax
jne 0x40f6a0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x28], ebp
mov edi, edx
cmp ebp, 3
jbe 0x40f7a8
cmp ebp, 0x40000000
jae 0x40fed9
xor ecx, ecx
lea eax, [ebp + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or eax, ecx
push eax
call fcn.004259f0
mov esi, eax
add esp, 4
test esi, esi
je 0x40fef0
xor eax, eax
push ebx
mov word [esi], ax
call fcn.004259b6
mov eax, dword [esp + 0x30]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x60], ebp
mov ebx, dword [esp + 0x58]
push eax
lea ecx, [esp + 0x2c]
push ecx
push ebx
mov eax, edi
call fcn.00410310
mov ecx, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x5c], ecx
mov word [ebx + ecx*2], dx
test al, al
je 0x40ff05
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40ff35
add dword [esp + 0x20], eax
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x20]
call fcn.0040f530
test al, al
je 0x40ff3c
mov esi, dword [edx]
mov eax, dword [esp + 0x20]
cmp byte [esi + eax], 0x3d
jne 0x40ff43
mov edi, 1
add dword [esp + 0x20], edi
lea eax, [esp + 0x20]
call fcn.0040f530
test al, al
je 0x40ff43
mov ecx, dword [esp + 0x20]
cmp byte [esi + ecx], 0x22
jne 0x40ff43
add dword [esp + 0x20], edi
xor esi, esi
push 4
mov dword [esp + 0x44], esi
call fcn.004259f0
add esp, 4
cmp eax, esi
je 0x40ff5e
mov edi, eax
mov ecx, 3
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], ecx
mov byte [eax], 0
mov byte [esp + 0x78], cl
jmp 0x40f870
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x80]
cmp ebx, dword [eax + 4]
jae 0x40ff73
mov eax, dword [eax]
mov dl, byte [eax + ebx]
inc ebx
mov byte [esp + 0x17], dl
mov dword [esp + 0x20], ebx
cmp dl, 0x22
je 0x40fbbb
cmp dl, 0x5c
jne 0x40fb4b
mov al, byte [eax + ebx]
mov byte [esp + 0x17], al
movsx eax, al
inc ebx
add eax, 0xffffffde
mov dword [esp + 0x20], ebx
cmp eax, 0x52
ja case.0x40f8c6.35
movzx edx, byte [eax + 0x41018c]
jmp dword [edx*4 + 0x410178]
cmp ecx, esi
jne 0x40f927
mov eax, esi
shr eax, 1
lea ebp, [eax + esi + 0x10]
and ebp, 0xfffffff0
dec ebp
cmp ebp, esi
jb 0x410059
cmp ebp, 0x40000000
jae 0x410059
lea ecx, [ebp + 1]
push ecx
call fcn.004259f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x410044
lea edx, [esi + 1]
push edx
push edi
push ebx
call fcn.00429520
push edi
call fcn.004259b6
mov edi, ebx
mov ecx, ebp
add esp, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ecx
mov word [esi + edi], 0xa
inc esi
mov dword [esp + 0x44], esi
jmp 0x40f870
cmp ecx, esi
jne 0x40f991
mov eax, esi
shr eax, 1
lea ebp, [eax + esi + 0x10]
and ebp, 0xfffffff0
dec ebp
cmp ebp, esi
jb 0x410085
cmp ebp, 0x40000000
jae 0x410085
lea ecx, [ebp + 1]
push ecx
call fcn.004259f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x410070
lea edx, [esi + 1]
push edx
push edi
push ebx
call fcn.00429520
push edi
call fcn.004259b6
mov edi, ebx
mov ecx, ebp
add esp, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ecx
mov word [esi + edi], 9
inc esi
mov dword [esp + 0x44], esi
jmp 0x40f870
cmp ecx, esi
jne 0x40f9fb
mov eax, esi
shr eax, 1
lea ebp, [eax + esi + 0x10]
and ebp, 0xfffffff0
dec ebp
cmp ebp, esi
jb 0x4100b1
cmp ebp, 0x40000000
jae 0x4100b1
lea ecx, [ebp + 1]
push ecx
call fcn.004259f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x41009c
lea edx, [esi + 1]
push edx
push edi
push ebx
call fcn.00429520
push edi
call fcn.004259b6
mov edi, ebx
mov ecx, ebp
add esp, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ecx
mov word [esi + edi], 0x5c
inc esi
mov dword [esp + 0x44], esi
jmp 0x40f870
cmp ecx, esi
jne 0x40fa65
mov eax, esi
shr eax, 1
lea ebp, [eax + esi + 0x10]
and ebp, 0xfffffff0
dec ebp
cmp ebp, esi
jb 0x4100dd
cmp ebp, 0x40000000
jae 0x4100dd
lea ecx, [ebp + 1]
push ecx
call fcn.004259f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4100c8
lea edx, [esi + 1]
push edx
push edi
push ebx
call fcn.00429520
push edi
call fcn.004259b6
mov edi, ebx
mov ecx, ebp
add esp, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ecx
mov word [esi + edi], 0x22
inc esi
mov dword [esp + 0x44], esi
jmp 0x40f870
cmp ecx, esi
jne 0x40facf
mov eax, esi
shr eax, 1
lea ebp, [eax + esi + 0x10]
and ebp, 0xfffffff0
dec ebp
cmp ebp, esi
jb 0x410109
cmp ebp, 0x40000000
jae 0x410109
lea ecx, [ebp + 1]
push ecx
call fcn.004259f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4100f4
lea edx, [esi + 1]
push edx
push edi
push ebx
call fcn.00429520
push edi
call fcn.004259b6
mov edi, ebx
mov ecx, ebp
add esp, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ecx
mov byte [esi + edi], 0x5c
inc esi
mov byte [esi + edi], 0
mov dword [esp + 0x44], esi
cmp ecx, esi
jne 0x40fb36
mov eax, esi
shr eax, 1
lea ebp, [eax + esi + 0x10]
and ebp, 0xfffffff0
dec ebp
cmp ebp, esi
jb 0x410135
cmp ebp, 0x40000000
jae 0x410135
lea ecx, [ebp + 1]
push ecx
call fcn.004259f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x410120
lea edx, [esi + 1]
push edx
push edi
push ebx
call fcn.00429520
push edi
call fcn.004259b6
mov edi, ebx
mov ecx, ebp
add esp, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ecx
mov al, byte [esp + 0x17]
mov byte [esi + edi], al
inc esi
mov byte [esi + edi], 0
mov dword [esp + 0x44], esi
jmp 0x40f870
cmp ecx, esi
jne 0x40fba9
mov ecx, esi
shr ecx, 1
lea ebp, [ecx + esi + 0x10]
and ebp, 0xfffffff0
dec ebp
cmp ebp, esi
jb 0x410161
cmp ebp, 0x40000000
jae 0x410161
lea edx, [ebp + 1]
push edx
call fcn.004259f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x41014c
lea eax, [esi + 1]
push eax
push edi
push ebx
call fcn.00429520
push edi
call fcn.004259b6
mov dl, byte [esp + 0x27]
mov edi, ebx
mov ecx, ebp
add esp, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ecx
mov byte [esi + edi], dl
mov byte [esi + edi + 1], 0
inc esi
mov dword [esp + 0x44], esi
jmp 0x40f870
mov edx, dword [esp + 0x24]
lea eax, [esi + edi]
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x68], ebx
mov word [edx], cx
mov dword [esp + 0x2c], eax
mov esi, edi
cmp edi, eax
je 0x40fc83
jmp 0x40fbe0
mov al, byte [esi]
inc esi
cmp al, 0x80
jb 0x40fc78
cmp al, 0xc0
jb 0x40fc78
cmp al, 0xe0
jae 0x40fc00
mov ebp, 1
add al, 0x40
jmp 0x40fc32
cmp al, 0xf0
jae 0x40fc0d
mov ebp, 2
add al, 0x20
jmp 0x40fc32
cmp al, 0xf8
jae 0x40fc1a
mov ebp, 3
add al, 0x10
jmp 0x40fc32
cmp al, 0xfc
jae 0x40fc27
mov ebp, 4
add al, 8
jmp 0x40fc32
cmp al, 0xfe
jae 0x40fc78
mov ebp, 5
add al, 4
movzx ecx, al
cmp esi, dword [esp + 0x2c]
je 0x40fc59
mov al, byte [esi]
lea edx, [eax + 0x80]
cmp dl, 0x3f
ja 0x40fc59
movzx eax, al
add eax, 0xffffff80
shl ecx, 6
inc esi
or ecx, eax
dec ebp
jne 0x40fc35
jmp 0x40fc5d
test ebp, ebp
jne 0x40fc78
cmp ecx, 0x10000
jb 0x40fc78
sub ecx, 0x10000
cmp ecx, 0x100000
jae 0x40fc78
add ebx, 2
jmp 0x40fc79
inc ebx
cmp esi, dword [esp + 0x2c]
jne 0x40fbe0
mov dword [esp + 0x30], ebx
cmp ebx, 3
jbe 0x40fcd8
cmp ebx, 0x40000000
jae 0x40ff9c
xor ecx, ecx
lea eax, [ebx + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or eax, ecx
push eax
call fcn.004259f0
mov esi, eax
add esp, 4
test esi, esi
je 0x40ffb3
mov ecx, dword [esp + 0x24]
xor eax, eax
push ecx
mov word [esi], ax
call fcn.004259b6
add esp, 4
mov dword [esp + 0x64], esi
mov dword [esp + 0x6c], ebx
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x64]
push edx
lea eax, [esp + 0x34]
push eax
push esi
mov eax, edi
call fcn.00410310
mov ebp, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x68], ebp
mov word [esi + ebp*2], cx
test al, al
je 0x40ffc8
push 0x18
call fcn.004259f0
mov esi, eax
add esp, 4
test esi, esi
je 0x40fff0
mov dword [esp + 0x30], esi
mov byte [esp + 0x78], 4
mov ebx, dword [esp + 0x28]
xor ecx, ecx
lea eax, [ebx + 1]
mov edx, 2
mul edx
seto cl
mov dword [esi], 0
neg ecx
or eax, ecx
push eax
call fcn.004259f0
add esp, 4
test eax, eax
je 0x410005
mov edx, dword [esp + 0x58]
mov ecx, ebx
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
lea ecx, [ebx + ebx + 2]
push ecx
push edx
push eax
mov dword [esi], eax
call fcn.00429520
xor ecx, ecx
lea eax, [ebp + 1]
mov edx, 2
mul edx
seto cl
mov byte [esp + 0x84], 5
mov dword [esi + 0xc], 0
neg ecx
or eax, ecx
push eax
call fcn.004259f0
add esp, 0x10
test eax, eax
je 0x41001a
mov edx, dword [esp + 0x64]
lea ecx, [ebp + ebp + 2]
push ecx
push edx
push eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebp
mov dword [esi + 0x14], ebp
call fcn.00429520
mov eax, dword [esp + 0x90]
mov byte [esp + 0x84], 3
mov ebp, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
cmp ebp, eax
jne 0x40fe3c
mov ecx, eax
shr ecx, 2
lea eax, [ecx + eax + 1]
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or eax, ecx
push eax
call fcn.004259f0
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
je 0x41002f
mov ebx, dword [esp + 0x84]
test ebp, ebp
je 0x40fe22
mov edx, dword [ebx]
lea ecx, [ebp*4]
push ecx
push edx
push eax
call fcn.00429520
add esp, 0xc
mov eax, dword [ebx]
push eax
call fcn.004259b6
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
add esp, 4
mov dword [ebx], eax
mov dword [ebx + 8], ecx
jmp 0x40fe43
mov ebx, dword [esp + 0x84]
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov dword [eax + edx*4], esi
inc dword [ebx + 4]
push edi
call fcn.004259b6
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004259b6
mov dword [esp + 0x80], 0xffffffff
mov edx, dword [esp + 0x6c]
push edx
call fcn.004259b6
mov eax, dword [esp + 0x64]
push eax
call fcn.004259b6
mov edx, dword [esp + 0x90]
add esp, 0x10
lea eax, [esp + 0x20]
call fcn.0040f530
test al, al
jne 0x40f5e5
mov al, 1
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret 8
push 0x433900
lea ecx, [esp + 0x1c]
xor al, al
push ecx
mov byte [esp + 0x20], al
call fcn.0042a55f
push 0x433900
lea edx, [esp + 0x1d]
xor al, al
push edx
mov byte [esp + 0x21], al
call fcn.0042a55f
push 0x4338cc
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x40], 0x13329ad
call fcn.0042a55f
push 0x433900
lea ecx, [esp + 0x1e]
xor al, al
push ecx
mov byte [esp + 0x22], al
call fcn.0042a55f
mov edx, dword [esp + 0x4c]
push edx
call fcn.004259b6
push esi
call fcn.004259b6
push ebx
call fcn.004259b6
add esp, 0xc
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
xor al, al
mov dword fs:[0], ecx
pop ebx
add esp, 0x6c
ret 8
mov eax, dword [esp + 0x4c]
push eax
jmp 0x40ff0a
mov ecx, dword [esp + 0x4c]
push ecx
jmp 0x40ff0a
mov edx, dword [esp + 0x4c]
push edx
call fcn.004259b6
mov eax, dword [esp + 0x28]
push eax
call fcn.004259b6
mov ecx, dword [esp + 0x60]
push ecx
jmp 0x40ff16
push 0x433900
lea edx, [esp + 0x1f]
xor al, al
push edx
mov byte [esp + 0x23], al
call fcn.0042a55f
push edi
call fcn.004259b6
mov eax, dword [esp + 0x50]
push eax
call fcn.004259b6
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.004259b6
mov edx, dword [esp + 0x64]
push edx
call fcn.004259b6
add esp, 0x10
jmp 0x40ff1e
push 0x4338cc
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], 0x13329ad
call fcn.0042a55f
push 0x433900
lea ecx, [esp + 0x20]
xor al, al
push ecx
mov byte [esp + 0x24], al
call fcn.0042a55f
push edi
call fcn.004259b6
mov edx, dword [esp + 0x50]
push edx
call fcn.004259b6
push esi
call fcn.004259b6
mov eax, dword [esp + 0x64]
push eax
call fcn.004259b6
add esp, 0x10
jmp 0x40ff1e
push 0x433900
lea ecx, [esp + 0x20]
xor al, al
push ecx
mov byte [esp + 0x24], al
call fcn.0042a55f
push 0x433900
lea edx, [esp + 0x21]
xor al, al
push edx
mov byte [esp + 0x25], al
call fcn.0042a55f
xor al, al
mov byte [esp + 0x1e], al
push 0x433900
lea eax, [esp + 0x22]
push eax
call fcn.0042a55f
push 0x433900
lea ecx, [esp + 0x23]
xor al, al
push ecx
mov byte [esp + 0x27], al
call fcn.0042a55f
push 0x433900
lea edx, [esp + 0x23]
xor al, al
push edx
mov byte [esp + 0x27], al
call fcn.0042a55f
push 0x4338cc
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], 0x13329ac
call fcn.0042a55f
push 0x433900
lea ecx, [esp + 0x23]
xor al, al
push ecx
mov byte [esp + 0x27], al
call fcn.0042a55f
push 0x4338cc
lea edx, [esp + 0x40]
push edx
mov dword [esp + 0x44], 0x13329ac
call fcn.0042a55f
xor al, al
mov byte [esp + 0x1f], al
push 0x433900
lea eax, [esp + 0x23]
push eax
call fcn.0042a55f
push 0x4338cc
lea ecx, [esp + 0x40]
push ecx
mov dword [esp + 0x44], 0x13329ac
call fcn.0042a55f
push 0x433900
lea edx, [esp + 0x23]
xor al, al
push edx
mov byte [esp + 0x27], al
call fcn.0042a55f
push 0x4338cc
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], 0x13329ac
call fcn.0042a55f
push 0x433900
lea ecx, [esp + 0x23]
xor al, al
push ecx
mov byte [esp + 0x27], al
call fcn.0042a55f
push 0x4338cc
lea edx, [esp + 0x40]
push edx
mov dword [esp + 0x44], 0x13329ac
call fcn.0042a55f
xor al, al
mov byte [esp + 0x1f], al
push 0x433900
lea eax, [esp + 0x23]
push eax
call fcn.0042a55f
push 0x4338cc
lea ecx, [esp + 0x40]
push ecx
mov dword [esp + 0x44], 0x13329ac
call fcn.0042a55f
push 0x433900
lea edx, [esp + 0x23]
xor al, al
push edx
mov byte [esp + 0x27], al
call fcn.0042a55f
push 0x4338cc
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], 0x13329ac
call fcn.0042a55f
or edi, edx
inc eax
add byte [ecx - 0x32ffbf07], ah
clc
inc eax
add byte [edi], dh
stc
inc eax
add byte [ebp - 6], dh
inc eax
add byte [eax], al
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 1
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 2
add al, 4
add al, 4
add al, 3
int3