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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x74]
cmp eax, dword [ecx + 8]
jbe 0x55286b
sub esp, 0xf4
mov eax, dword [esp + 0xf8]
mov ecx, dword [eax + 0x1a0]
test ecx, ecx
jg 0x55284a
mov ecx, dword [esp + 0x104]
test ecx, ecx
jle 0x55207c
mov edx, dword [esp + 0x100]
mov ebx, dword [edx + ecx*4 - 4]
mov ebp, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x30]
mov esi, dword [eax + 0x24]
cmp dword [eax + 0x28], ebp
jne 0x55200d
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.00402800
movzx eax, byte [esp + 0xc]
test al, al
je 0x552006
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x104]
jmp 0x55207c
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 5
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], ecx
add esp, 0xf4
ret
mov edx, dword [esp + 0x10c]
test byte [edx], al
lea esi, [edx + 0x10]
lea edi, [esp + 0x90]
call fcn.0045ed5e
lea edi, [esp + 0x7c]
lea esi, [esp + 0x90]
call fcn.0045ed5e
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
test ebx, 0x80000000
je 0x5520e3
shl ebx, 1
mov ebp, ecx
shr ecx, 0x1f
or ebx, ecx
mov ecx, ebp
shl ebp, 1
mov esi, ebx
shl ebx, 1
shr ebp, 0x1f
or ebp, ebx
mov ebx, ebp
add ebp, 0xd7b17f80
shr esi, 0x1f
add ebx, 0xd7b17f80
adc esi, 0xd
jmp 0x5520f1
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x88]
test esi, esi
sete bl
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebx, ebp
test bl, bl
je 0x552128
test ecx, 0x3fffffff
jne 0x552128
call fcn.004a00f0
lea edi, [esp + 0x90]
lea esi, [esp]
call fcn.0045ed5e
mov eax, dword [esp + 0xf8]
lea esi, [eax + 0x158]
mov dword [esp + 0x48], esi
lea edi, [esp + 0xe0]
call fcn.0045ed5e
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0045ed5e
lea edi, [esp + 0x14]
lea esi, [esp + 0xe0]
call fcn.0045ed5e
call fcn.0049dfb0
movzx eax, byte [esp + 0x28]
test al, al
jne 0x5526be
mov eax, dword [esp + 0xf8]
lea esi, [eax + 0x16c]
mov dword [esp + 0x48], esi
lea edi, [esp + 0xb8]
call fcn.0045ed5e
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0045ed5e
lea edi, [esp + 0x14]
lea esi, [esp + 0xb8]
call fcn.0045ed5e
call fcn.0049de70
movzx eax, byte [esp + 0x28]
test al, al
jne 0x552532
mov eax, dword [esp + 0x10c]
mov eax, dword [eax + 0x30]
test eax, eax
jne 0x5521d0
mov eax, 0x3d090
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0xfc]
cmp ecx, 1
jne 0x5521ef
mov edx, dword [esp + 0x104]
test edx, edx
jmp 0x5521fd
cmp ecx, 2
jne 0x552249
mov edx, dword [esp + 0x104]
test edx, edx
je 0x55220d
mov ebx, dword [esp + 0x100]
mov ebx, dword [ebx]
cmp ecx, 1
jmp 0x552258
lea eax, [0x615300]
mov dword [esp], eax
call fcn.0040b5f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x38
lea ecx, [0x64e70d]
mov dword [eax], ecx
lea ecx, [0x69f4b0]
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], eax
add esp, 0xf4
ret
cmp ecx, 1
mov edx, dword [esp + 0x104]
mov ebx, 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], ebx
je 0x55226b
cmp ecx, 2
jne 0x552338
mov eax, dword [0x7ea060]
mov ecx, dword [0x7ea064]
mov edx, dword [0x7ea068]
mov ebx, dword [esp + 0xf8]
mov ebp, dword [ebx + 0x184]
mov esi, dword [ebx + 0x188]
mov edi, dword [ebx + 0x18c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call fcn.00555ed0
movzx eax, byte [esp + 0x18]
test al, al
jne 0x5522d5
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x3c]
xor ebp, ebp
jmp 0x55233a
mov eax, dword [0x7ea070]
mov ecx, dword [0x7ea074]
mov edx, dword [0x7ea078]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [ebx + 0x184]
mov esi, dword [ebx + 0x188]
mov edi, dword [ebx + 0x18c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call fcn.00555ed0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x3c]
mov ebp, eax
mov eax, dword [esp + 0x2c]
jmp 0x55233a
xor ebp, ebp
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x552348
cmp ecx, 1
jmp 0x5523de
mov dword [esp], ebx
call fcn.00555780
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea ebx, [0x552880]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x50], ebx
lea ebp, [esp + 0x30]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x58], ebp
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
lea eax, [esp + 0x4c]
mov dword [esp + 0xc], eax
call fcn.00549780
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x55251d
mov eax, dword [esp + 0xfc]
cmp eax, 1
mov edx, dword [esp + 0x104]
jne 0x552470
mov eax, dword [esp + 0xf8]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x552401
movzx ecx, byte [eax + 0x1c1]
test cl, cl
jne 0x552477
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], ecx
add esp, 0xf4
ret
mov eax, dword [esp + 0xf8]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x552500
mov ecx, dword [eax + 0x1c4]
test ecx, ecx
jl 0x552500
dec edx
cmp ecx, edx
jge 0x552500
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 3
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], ecx
add esp, 0xf4
ret
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
add esp, 0xf4
ret
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edx
add esp, 0xf4
ret
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0045ed5e
lea eax, [0x643ecc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x19
call fcn.00498530
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
lea edi, [esp + 0xa4]
mov esi, dword [esp + 0x48]
call fcn.0045ed5e
lea edi, [esp]
lea esi, [esp + 0xa4]
call fcn.0045ed5e
lea ecx, [0x643ecc]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x19
call fcn.00498530
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0x44]
mov dword [esp], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
call fcn.00408eb0
mov eax, dword [esp + 8]
lea ecx, [0x60d840]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00408eb0
mov eax, dword [esp + 8]
lea ecx, [0x60d840]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
lea eax, [0x6450f2]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b47b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], ecx
add esp, 0xf4
ret
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0045ed5e
lea eax, [0x643ecc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x19
call fcn.00498530
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
lea edi, [esp + 0xcc]
mov esi, dword [esp + 0x48]
call fcn.0045ed5e
lea edi, [esp]
lea esi, [esp + 0xcc]
call fcn.0045ed5e
lea ecx, [0x643ecc]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x19
call fcn.00498530
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0x44]
mov dword [esp], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
call fcn.00408eb0
mov eax, dword [esp + 8]
lea ecx, [0x60d840]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00408eb0
mov eax, dword [esp + 8]
lea ecx, [0x60d840]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
lea eax, [0x64588c]
mov dword [esp], eax
mov dword [esp + 4], 0x1c
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b47b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], ecx
add esp, 0xf4
ret
lea eax, [0x69f924]
mov dword [esp + 0x110], eax
lea eax, [0x816bf0]
mov dword [esp + 0x114], eax
add esp, 0xf4
ret
call fcn.0045d190
jmp fcn.00551f80