Function at 0x559980
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x559d49
sub esp, 0x5c
lea eax, [0x640f20]
mov dword [esp], eax
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x84]
lea ebx, [edx + ecx]
mov dword [esp + 0x30], ebx
mov dword [esp + 8], ebx
call fcn.00438de0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x30]
cmp ecx, edx
ja 0x559cc6
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], edx
mov dword [esp], eax
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0044d890
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
ja 0x559c90
mov edx, dword [esp + 0x48]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x84]
add eax, edx
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
call fcn.0044d890
lea eax, [0x640f20]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
shl eax, 1
mov edx, dword [esp + 0x90]
lea eax, [eax + edx*2]
mov ebx, dword [esp + 0x94]
lea eax, [eax + ebx*2]
mov dword [esp + 0x38], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00438de0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x58], eax
nop
movzx ecx, word [esp + 0x60]
mov word [esp], cx
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], ecx
call fcn.005596b0
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x14], ebx
mov ebx, dword [0x88faa8]
mov ebp, dword [0x88faa4]
mov esi, dword [str.key_expansion]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x2c], ebx
mov ebx, dword [edx]
call ebx
mov eax, dword [esp + 0x8c]
test eax, eax
jl 0x559d42
mov ecx, dword [esp + 0x38]
cmp eax, ecx
ja 0x559d42
ja 0x559d3b
mov edx, ecx
sub ecx, eax
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov ebp, dword [esp + 0x58]
add ecx, ebp
cmp eax, ebx
ja 0x559d34
ja 0x559d2d
mov dword [esp + 0x44], ebx
sub ebx, eax
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
add ebx, ecx
mov esi, dword [esp + 0x90]
test esi, esi
jl 0x559d26
cmp esi, edi
ja 0x559d26
ja 0x559d1f
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], ebx
sub edi, esi
mov dword [esp + 0x34], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, esi
add edi, ebx
mov ebx, dword [esp + 0x34]
cmp esi, ebx
ja 0x559d18
ja 0x559d11
mov dword [esp + 0x54], edi
sub ebx, esi
mov dword [esp + 0x3c], ebx
neg ebx
sar ebx, 0x1f
and ebx, esi
add ebx, edi
mov edi, dword [esp + 0x94]
test edi, edi
jl 0x559d0a
mov esi, dword [esp + 0x3c]
cmp edi, esi
ja 0x559d0a
ja 0x559d03
sub esi, edi
mov dword [esp + 0x38], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edi
add esi, ebx
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x38]
cmp edi, esi
ja 0x559cfc
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], edi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], esi
add esp, 0x5c
ret
lea edx, [0x640f20]
mov dword [esp], edx
mov ebx, dword [esp + 0x48]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.00438ea0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jmp 0x559a0f
lea ebx, [0x640f20]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00438ea0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x84]
jmp 0x5599dc
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.00427250
ud2
call fcn.0044b940
jmp fcn.00559980