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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5540d9
sub esp, 0x7c
mov ebx, dword [esp + 0x80]
mov ebp, dword [ebx + 0x19c]
mov ecx, dword [ebx + 0x1a0]
mov esi, dword [ebx + 0x1a4]
mov eax, dword [ebx + 0x1a8]
mov edi, ecx
sub ecx, eax
cmp ecx, 4
jge 0x553812
mov dword [esp], ebx
mov byte [esp + 4], 0
call fcn.0054ff10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x5537a9
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
add esp, 0x7c
ret
nop
cmp eax, edi
ja 0x5540d1
sub esi, eax
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and eax, esi
movzx esi, byte [ebp + eax + 1]
shl esi, 0x10
movzx edi, byte [ebp + eax + 2]
shl edi, 8
or edi, esi
movzx ebp, byte [ebp + eax + 3]
or ebp, edi
mov dword [esp + 0x20], ebp
cmp ebp, 0x10000
jle 0x55385d
jmp 0x553f1b
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x20]
lea esi, [ebp + 4]
mov edi, dword [ebx + 0x1a0]
sub edi, dword [ebx + 0x1a8]
cmp edi, esi
jge 0x5538b1
mov dword [esp], ebx
mov byte [esp + 4], 0
call fcn.0054ff10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x553852
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
add esp, 0x7c
ret
nop
mov byte [ebx + 0x1ac], 0
nop
mov edx, dword [ebx + 0x1a4]
mov ebp, dword [ebx + 0x19c]
mov edi, dword [ebx + 0x1a0]
mov eax, dword [ebx + 0x1a8]
sub edi, eax
cmp esi, edi
jle 0x553f14
lea ecx, [edi + eax]
cmp ecx, edx
ja 0x5540cc
cmp eax, ecx
ja 0x5540c7
mov dword [ebx + 0x1a8], ecx
sub edx, eax
neg edx
sar edx, 0x1f
and eax, edx
lea edx, [ebp + eax]
test edi, edi
jle 0x55390d
mov byte [ebx + 0x1ac], 0xff
jbe 0x5540be
mov dword [esp + 0x24], edi
mov dword [esp + 0x64], edx
movzx eax, byte [ebp + eax]
cmp al, 0xb
ja 0x553d8d
cmp al, 2
ja 0x553b7f
test al, al
jne 0x553b38
lea eax, [0x6cc6b0]
lea ecx, [0x7e32f0]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x28], eax
lea edx, [0x643900]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edi
call fcn.004441e0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], ecx
mov dword [esp], eax
mov edx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 8], edx
call fcn.0045d2c0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x48]
mov dword [esp], edx
mov ebx, dword [esp + 0x68]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xc], ebx
call ecx
movzx eax, byte [esp + 0x10]
test al, al
je 0x553a08
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5539dc
mov eax, dword [eax + 4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
add esp, 0x7c
ret
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00552d50
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], ecx
lea edx, [0x653520]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0040a2a0
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0xc]
test cl, cl
jne 0x553abd
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x80]
mov dword [edx + 0xc8], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x553aac
mov eax, dword [esp + 0x50]
mov dword [edx + 0xcc], eax
mov eax, dword [edx + 0xc8]
mov ecx, dword [edx + 0xcc]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
add esp, 0x7c
ret
lea edi, [edx + 0xcc]
mov eax, dword [esp + 0x50]
call fcn.0045c920
jmp 0x553a78
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], edx
lea eax, [0x64d1a0]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x553b26
mov ecx, dword [esp + 0x58]
mov dword [eax + 4], ecx
lea ecx, [0x6cad90]
mov edx, dword [esp + 0x80]
mov dword [edx + 0xc8], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x553b16
mov dword [edx + 0xcc], eax
jmp 0x553a78
lea edi, [edx + 0xcc]
call fcn.0045c920
jmp 0x553a78
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x58]
call fcn.0045c920
mov eax, ecx
jmp 0x553aee
cmp al, 1
jne 0x553b5e
lea eax, [0x671000]
mov dword [esp], eax
call fcn.0040c800
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x24]
lea eax, [0x6cc610]
jmp 0x553946
lea eax, [0x66f3c0]
mov dword [esp], eax
call fcn.0040c800
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x24]
lea eax, [0x6cc750]
jmp 0x553946
cmp al, 5
ja 0x553d15
cmp al, 4
jne 0x553bd6
cmp word [ebx + 0x24], 0x304
jne 0x553bbc
lea eax, [0x663b20]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
lea ecx, [0x6cc710]
mov edi, dword [esp + 0x24]
mov edx, eax
mov eax, ecx
mov ecx, edx
jmp 0x553946
lea eax, [0x652a40]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
lea ecx, [0x6cc6f0]
jmp 0x553bad
cmp al, 5
jne 0x553bec
lea eax, [0x6cc670]
lea ecx, [0x7e32f0]
jmp 0x553946
mov dword [esp], ebx
mov byte [esp + 4], 0xa
call fcn.00552d50
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x34], ecx
lea edx, [0x653520]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0040a2a0
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0xc]
test cl, cl
jne 0x553c9a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x80]
mov dword [edx + 0xc8], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x553c89
mov eax, dword [esp + 0x4c]
mov dword [edx + 0xcc], eax
mov eax, dword [edx + 0xc8]
mov ecx, dword [edx + 0xcc]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
add esp, 0x7c
ret
lea edi, [edx + 0xcc]
mov eax, dword [esp + 0x4c]
call fcn.0045c920
jmp 0x553c55
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], edx
lea eax, [0x64d1a0]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x553d03
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], ecx
lea ecx, [0x6cad90]
mov edx, dword [esp + 0x80]
mov dword [edx + 0xc8], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x553cf3
mov dword [edx + 0xcc], eax
jmp 0x553c55
lea edi, [edx + 0xcc]
call fcn.0045c920
jmp 0x553c55
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x5c]
call fcn.0045c920
mov eax, ecx
jmp 0x553ccb
cmp al, 8
je 0x553d6c
cmp al, 0xb
jne 0x553bec
cmp word [ebx + 0x24], 0x304
jne 0x553d52
lea eax, [0x65d2c0]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
lea ecx, [0x6cc570]
mov edi, dword [esp + 0x24]
mov edx, eax
mov eax, ecx
mov ecx, edx
jmp 0x553946
lea eax, [0x652740]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
lea ecx, [0x6cc550]
jmp 0x553d43
lea eax, [0x6528c0]
mov dword [esp], eax
call fcn.0040c800
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x24]
lea eax, [0x6cc650]
jmp 0x553946
cmp al, 0xf
ja 0x553e6f
cmp al, 0xd
ja 0x553e23
cmp al, 0xc
je 0x553e02
cmp word [ebx + 0x24], 0x304
jne 0x553dd3
lea eax, [0x663a80]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
lea ecx, [0x6cc5b0]
mov edi, dword [esp + 0x24]
mov edx, eax
mov eax, ecx
mov ecx, edx
jmp 0x553946
lea eax, [0x660d20]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 0x80]
cmp word [eax + 0x24], 0x303
setae cl
mov edx, dword [esp + 4]
mov byte [edx + 0xc], cl
lea ecx, [0x6cc590]
mov eax, edx
jmp 0x553dc4
lea eax, [0x652b60]
mov dword [esp], eax
call fcn.0040c800
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x24]
lea eax, [0x6cc770]
jmp 0x553946
cmp al, 0xe
jne 0x553e39
lea eax, [0x6cc730]
lea ecx, [0x7e32f0]
jmp 0x553946
lea eax, [0x65d340]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 0x80]
cmp word [eax + 0x24], 0x303
setae cl
mov edx, dword [esp + 4]
mov byte [edx + 0xc], cl
mov edi, dword [esp + 0x24]
lea eax, [0x6cc5f0]
mov ecx, edx
jmp 0x553946
cmp al, 0x14
ja 0x553ec4
cmp al, 0x10
je 0x553ea3
cmp al, 0x14
jne 0x553bec
lea eax, [0x652920]
mov dword [esp], eax
call fcn.0040c800
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x24]
lea eax, [0x6cc690]
jmp 0x553946
lea eax, [0x652800]
mov dword [esp], eax
call fcn.0040c800
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x24]
lea eax, [0x6cc630]
jmp 0x553946
cmp al, 0x16
je 0x553ef3
cmp al, 0x18
jne 0x553bec
lea eax, [0x6529e0]
mov dword [esp], eax
call fcn.0040c800
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x24]
lea eax, [0x6cc6d0]
jmp 0x553946
lea eax, [0x6527a0]
mov dword [esp], eax
call fcn.0040c800
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x24]
lea eax, [0x6cc5d0]
jmp 0x553946
mov edi, esi
jmp 0x5538dc
mov dword [esp], ebx
mov byte [esp + 4], 0x50
call fcn.00552b50
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00409e70
mov eax, dword [esp + 4]
lea ecx, [0x642dc0]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
lea eax, [0x6c6a6c]
mov dword [esp + 0x78], eax
lea eax, [0x68be25]
mov dword [esp], eax
mov dword [esp + 4], 0x45
lea eax, [esp + 0x6c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004abbc0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
lea edx, [0x653520]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0040a2a0
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0xc]
test cl, cl
jne 0x554043
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x80]
mov dword [edx + 0xc8], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x554032
mov eax, dword [esp + 0x54]
mov dword [edx + 0xcc], eax
mov eax, dword [edx + 0xc8]
mov ecx, dword [edx + 0xcc]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
add esp, 0x7c
ret
lea edi, [edx + 0xcc]
mov eax, dword [esp + 0x54]
call fcn.0045c920
jmp 0x553ffe
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], edx
lea eax, [0x64d1a0]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x5540ac
mov ecx, dword [esp + 0x60]
mov dword [eax + 4], ecx
lea ecx, [0x6cad90]
mov edx, dword [esp + 0x80]
mov dword [edx + 0xc8], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x55409c
mov dword [edx + 0xcc], eax
jmp 0x553ffe
lea edi, [edx + 0xcc]
call fcn.0045c920
jmp 0x553ffe
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x60]
call fcn.0045c920
mov eax, ecx
jmp 0x554074
xor eax, eax
mov ecx, edi
call fcn.0045c9a0
call fcn.0045ca00
call fcn.0045c9e0
mov ecx, edi
call fcn.0045ca00
nop
call fcn.0045b380
jmp fcn.00553790