Function at 0x4057fb
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push dword [ebp + 0xd4]
push esi
call fcn.0040533b
push ebp
mov dword [ebx + 0x5c], eax
push dword [ebp + 0x98]
push esi
call fcn.0040533b
push 0
push ebx
mov dword [ebx + 0x64], eax
call fcn.0040681a
add esp, 0x40
mov esi, eax
push ebp
push esi
push ebx
call fcn.00405f19
add esp, 0xc
cmp byte [esi + 1], 0
jne 0x405706
cmp byte [esi + 5], 0
je 0x405721
push 0x22
pop edi
push 0x4b3
push dword [ebx + 0x30]
call fcn.0040638a
pop ecx
pop ecx
sub edi, 1
jne 0x405709
mov edi, dword [esp + 0x74]
push 0
call dword [ebx + 4]
cmp byte [esi + 6], 0
jne 0x405775
cmp byte [esi + 7], 0
jne 0x405775
mov esi, dword [ebp + 0x58]
add esi, eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x78]
push eax
push esi
push ebx
call fcn.00405c8c
add esp, 0x10
jmp 0x405771
push 0x1391
push dword [ebx + 0x30]
call fcn.0040638a
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x80]
push eax
push esi
push ebx
call fcn.00405c8c
add esp, 0x18
test eax, eax
jle 0x40574d
mov esi, dword [esp + 0x2c]
push ebp
push dword [ebp + 0x8c]
mov dword [esp + 0x50], ebx
push esi
call fcn.0040533b
push ebp
push dword [ebp + 0x94]
mov dword [esp + 0x50], eax
push esi
call fcn.0040533b
push ebp
push dword [ebp + 0x34]
mov dword [esp + 0x60], eax
push edi
call fcn.0040533b
mov dword [esp + 0x70], eax
xor eax, eax
push eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x9c]
push eax
push ebx
call fcn.00406017
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x48]
push eax
push ebx
push dword [esp + 0xb0]
call fcn.00406491
add esp, 0x40
push ebp
push dword [ebp + 0x80]
push edi
call fcn.0040533b
mov ecx, dword [ebp + 0xec]
add esp, 0xc
mov edx, dword [esp + 0x14]
and al, 0x14
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x74], eax
mov edi, dword [ecx + edx]
mov esi, dword [ecx + edx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x5c]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x24]
xor eax, dword [ebp + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], esi
cmp edi, eax
jne 0x405851
push ebp
push ebx
lea eax, [esp + 0x18]
push eax
lea eax, [edx + 8]
add eax, ecx
push esi
push eax
call fcn.0040650f
add esp, 0x14
jmp 0x4059a8
push edi
push ebx
call fcn.0040681a
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x2c]
add eax, 8
push edi
add ecx, eax
push ecx
push esi
call fcn.004052fe
add esp, 0x14
xor eax, eax
test edi, edi
je 0x405886
mov ecx, dword [esp + 0x30]
xor dword [eax + esi], ecx
add eax, 4
cmp eax, edi
jb 0x40587c
push 0
push ebx
call fcn.0040681a
pop ecx
pop ecx
mov cl, byte [esi]
mov dword [esp + 0x24], eax
test cl, cl
je 0x4058ad
mov edx, eax
movsx ax, cl
inc esi
mov word [edx], ax
lea edx, [edx + 2]
mov cl, byte [esi]
test cl, cl
jne 0x40589c
push ebx
call fcn.00405eb9
push ebp
push dword [esp + 0x2c]
call fcn.0040629e
push ebp
push eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.0040604c
add esp, 0x24
test al, al
jne 0x405987
push 0
push ebx
call fcn.0040681a
and dword [esp + 0x30], 0
mov esi, eax
mov ebp, dword [esp + 0x2c]
pop ecx
pop ecx
mov dword [esp + 0x14], esi
jmp 0x405905
mov esi, dword [esp + 0x14]
push ebx
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x1c]
push eax
push ebp
call fcn.004061f8
add esp, 0x10
test al, al
jne 0x405933
and dword [esp + 0x28], 0
push 0x1a49
push dword [ebx + 0x30]
call fcn.0040638a
pop ecx
pop ecx
jmp 0x405905
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x78]
push eax
push esi
push ebx
call fcn.00405c8c
mov edi, eax
add esp, 0x10
cmp edi, 4
jb 0x405905
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x34]
cmp dword [esi], eax
jne 0x405901
push dword [esp + 0x38]
push edi
push esi
call fcn.004065d2
add esp, 0xc
test al, al
je 0x405901
mov ebp, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push ebp
push dword [esp + 0x34]
push edi
push esi
push eax
push ebx
call fcn.004066f9
add esp, 0x18
jmp 0x40598f
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x74]
push ebp
push ebx
lea eax, [esp + 0x18]
push eax
push edi
push esi
call fcn.00405b4b
add esp, 0x14
test al, al
je 0x405ab2
push ebx
lea eax, [esp + 0x78]
xor edi, edi
push eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x7c], edi
push dword [eax + 0xc]
push dword [eax + 8]
add eax, 0x10
push eax
call fcn.00405b11
add esp, 0x14
test al, al
je 0x405ab2
mov ebp, dword [esp + 0x74]
mov esi, edi
lea eax, [ebp + 0x90]
push eax
call fcn.004063de
pop ecx
test eax, eax
jne 0x4059ef
mov esi, dword [ebp + 0x160]
mov eax, dword [ebp + 8]
add ebp, 0x3dd
add eax, esi
mov dword [esp + 0x28], edi
add ebp, eax
mov eax, dword [esp + 0x18]
push eax
push dword [eax + 0xcc]
lea eax, [esp + 0x30]
push eax
push ebp
push ebx
call fcn.00405296
push edi
mov edi, dword [esp + 0x38]
mov ebx, eax
push edi
call fcn.0040681a
mov ecx, dword [esp + 0x90]
mov esi, eax
add ecx, 0xf4
push esi
push ecx
call fcn.00405aba
push esi
call fcn.00406363
push eax
push edi
call fcn.004062d3
mov esi, dword [esp + 0x58]
push esi
push dword [esp + 0x54]
mov ecx, dword [eax + 0x3c]
mov edi, dword [ecx + eax + 0x2c]
add edi, eax
call fcn.0040681a
push esi
push edi
push eax
call fcn.004052fe
and dword [esp + 0x60], 0
lea eax, [esp + 0x60]
add esp, 0x44
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + 0x120]
push esi
push edi
call dword [esp + 0x3c]
push esi
push ebx
push edi
call fcn.004052fe
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x20]
push esi
push edi
call dword [esp + 0x3c]
push dword [esp + 0x20]
push dword [esp + 0x14]
push ebp
push dword [esp + 0x80]
call edi
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret