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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x64dd98
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, dword [esp + 0x98]
push edi
xor edi, edi
cmp dword [esi + 8], edi
je 0x550974
mov ebp, dword [esp + 0x98]
push esi
push ebp
call fcn.00551360
or ebx, 0xffffffff
add esp, 8
cmp eax, ebx
jne 0x5503ec
mov eax, dword [esp + 0xa4]
cmp eax, edi
je 0x5503cf
push eax
push ebp
call fcn.0054fb20
add esp, 8
mov esi, eax
jmp 0x5503d1
xor esi, esi
mov eax, dword [esp + 0xa0]
cmp eax, edi
je 0x5503e5
push eax
call fcn.0054f9f0
add esp, 4
mov eax, esi
jmp 0x550a3a
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x60]
add eax, 2
push eax
call fcn.0054f880
mov eax, dword [esp + 0x64]
mov dword [esp + 0x90], edi
cmp eax, edi
jne 0x550417
mov dword [esp + 0x90], ebx
jmp 0x550909
mov ecx, dword [ebp + 8]
push ebp
add ecx, 2
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x28]
call fcn.0054f730
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x94], 1
call fcn.0054f730
lea ecx, [esp + 0x4c]
mov byte [esp + 0x90], 2
call fcn.0054f840
lea ecx, [esp + 0x74]
mov byte [esp + 0x90], 3
call fcn.0054f840
mov eax, dword [esp + 0x28]
mov byte [esp + 0x90], 4
cmp eax, edi
jne 0x5504bf
lea ecx, [esp + 0x74]
mov byte [esp + 0x90], 3
call fcn.0054f980
lea ecx, [esp + 0x4c]
mov byte [esp + 0x90], 2
call fcn.0054f980
lea ecx, [esp + 0x38]
mov byte [esp + 0x90], 1
call fcn.0054f980
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 0
call fcn.0054f980
mov dword [esp + 0x90], ebx
jmp 0x550909
cmp dword [esp + 0x3c], edi
je 0x55046f
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 0x10]
xor eax, eax
cmp edx, ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x48], edi
setne al
push ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], edi
call fcn.005510e0
cdq
mov ecx, 0x1c
add esp, 4
idiv ecx
cmp edx, 0x1b
jge 0x550587
mov esi, 0x1b
lea eax, [esp + 0x24]
sub esi, edx
lea edx, [esp + 0x24]
push edx
push esi
push eax
mov dword [esp + 0x20], esi
call fcn.00552f30
add esp, 0xc
cmp eax, edi
je 0x55056e
lea ecx, [esp + 0x74]
mov byte [esp + 0x90], 3
call fcn.0054f980
lea ecx, [esp + 0x4c]
mov byte [esp + 0x90], 2
call fcn.0054f980
lea ecx, [esp + 0x38]
mov byte [esp + 0x90], 1
call fcn.0054f980
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 0
call fcn.0054f980
mov dword [esp + 0x90], ebx
jmp 0x55096b
lea ecx, [esp + 0x38]
lea edx, [esp + 0x38]
push ecx
push esi
push edx
call fcn.00552f30
add esp, 0xc
cmp eax, edi
je 0x55058b
jmp 0x55051e
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x38]
lea edi, [eax - 1]
lea eax, [ecx - 1]
mov esi, edi
mov dword [esp + 0x10], eax
sub esi, eax
push esi
push edx
call fcn.00552950
add esp, 8
test eax, eax
jne 0x55051e
lea eax, [esp + 0x38]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.005512f0
add esp, 8
cmp eax, ebx
je 0x55060d
mov eax, dword [esp + 0x64]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax + esi*4]
inc ecx
mov dword [eax + esi*4], ecx
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x28]
push eax
push ecx
call fcn.00553a60
add esp, 0xc
test eax, eax
jne 0x55051e
lea edx, [esp + 0x38]
lea eax, [esp + 0x24]
push edx
push eax
call fcn.005512f0
add esp, 8
cmp eax, ebx
jne 0x5505cd
lea ecx, [esp + 0x38]
push esi
push ecx
call fcn.00553960
mov edx, dword [esp + 0x18]
add esp, 8
lea eax, [edx + 1]
cmp edi, eax
jl 0x5508a1
cmp edi, dword [esp + 0x2c]
jg 0x550891
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x55046f
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x55046f
mov ebx, dword [esp + 0x64]
test ebx, ebx
je 0x55097e
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + edi*4]
mov esi, dword [ecx + edx*4]
cmp eax, esi
jne 0x55067e
mov eax, edi
sub eax, edx
lea ebp, [eax - 1]
lea esi, [ebp*4]
mov dword [esi + ebx], 0xfffffff
jmp 0x5506cf
mov ecx, 0x1c
xor edx, edx
call fcn.00643760
mov ecx, dword [ebp + edi*4 - 4]
xor ebp, ebp
or edx, ebp
push ebp
or eax, ecx
push esi
push edx
push eax
call fcn.00643570
test edx, edx
ja 0x5506a8
cmp eax, 0xfffffff
jbe 0x5506b5
mov eax, 0xfffffff
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x10]
mov edx, edi
sub edx, esi
and eax, 0xfffffff
lea ebp, [edx - 1]
lea esi, [ebp*4]
mov dword [esi + ebx], eax
mov eax, dword [esp + 0x64]
mov ecx, dword [esi + eax]
inc ecx
and ecx, 0xfffffff
mov dword [esi + eax], ecx
mov eax, dword [esp + 0x64]
mov edx, dword [esi + eax]
dec edx
and edx, 0xfffffff
mov dword [esi + eax], edx
lea eax, [esp + 0x4c]
push eax
call fcn.0054f9f0
mov ecx, dword [esp + 0x54]
add esp, 4
test ecx, ecx
je 0x5508ba
mov edx, dword [esp + 0x10]
lea eax, [edx - 1]
test eax, eax
jge 0x550719
xor eax, eax
jmp 0x550721
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + edx*4 - 4]
mov dword [ecx], eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov edx, dword [ecx + edx*4]
lea ecx, [esp + 0x4c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x54], 2
push ecx
mov eax, dword [esi + edx]
lea ecx, [esp + 0x50]
push eax
push ecx
call fcn.00553040
add esp, 0xc
test eax, eax
jne 0x55091c
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x5508ba
lea eax, [edi - 2]
test eax, eax
jge 0x550772
xor eax, eax
jmp 0x550779
mov edx, dword [esp + 0x28]
mov eax, dword [edx + eax*4]
mov dword [ecx], eax
lea eax, [edi - 1]
test eax, eax
jge 0x550786
xor eax, eax
jmp 0x55078e
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 - 4]
mov edx, dword [esp + 0x78]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x78]
mov ecx, dword [eax + edi*4]
lea eax, [esp + 0x74]
mov dword [edx + 8], ecx
lea ecx, [esp + 0x4c]
push eax
push ecx
mov dword [esp + 0x84], 3
call fcn.00551360
add esp, 8
cmp eax, 1
je 0x5506e0
mov eax, dword [esp + 0x64]
lea edx, [esp + 0x4c]
push edx
lea edx, [esp + 0x3c]
mov ecx, dword [esi + eax]
push ecx
push edx
call fcn.00553040
add esp, 0xc
test eax, eax
jne 0x55091c
lea eax, [esp + 0x4c]
push ebp
push eax
call fcn.00552950
add esp, 8
test eax, eax
jne 0x55091c
lea ecx, [esp + 0x24]
lea edx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x28]
push edx
push eax
call fcn.00553a60
add esp, 0xc
test eax, eax
jne 0x55091c
cmp dword [esp + 0x34], 1
jne 0x550887
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x38]
push ecx
push edx
call fcn.0054fb20
add esp, 8
test eax, eax
jne 0x55091c
lea eax, [esp + 0x4c]
push ebp
push eax
call fcn.00552950
add esp, 8
test eax, eax
jne 0x55091c
lea ecx, [esp + 0x24]
lea edx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x28]
push edx
push eax
call fcn.00551140
add esp, 0xc
test eax, eax
jne 0x55091c
mov eax, dword [esp + 0x64]
mov ecx, dword [esi + eax]
dec ecx
and ecx, 0xfffffff
mov dword [esi + eax], ecx
mov ebp, dword [esp + 0x98]
or ebx, 0xffffffff
mov edx, dword [esp + 0x10]
dec edi
lea eax, [edx + 1]
cmp edi, eax
jge 0x55062a
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x550986
mov dword [esp + 0x34], 0
jmp 0x55098d
lea ecx, [esp + 0x74]
mov byte [esp + 0x90], 3
call fcn.0054f980
lea ecx, [esp + 0x4c]
mov byte [esp + 0x90], 2
call fcn.0054f980
lea ecx, [esp + 0x38]
mov byte [esp + 0x90], 1
call fcn.0054f980
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 0
call fcn.0054f980
mov dword [esp + 0x90], 0xffffffff
lea ecx, [esp + 0x60]
call fcn.0054f980
mov eax, 0xfffffffe
jmp 0x550a3a
lea ecx, [esp + 0x74]
mov byte [esp + 0x90], 3
call fcn.0054f980
lea ecx, [esp + 0x4c]
mov byte [esp + 0x90], 2
call fcn.0054f980
lea ecx, [esp + 0x38]
mov byte [esp + 0x90], 1
call fcn.0054f980
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 0
call fcn.0054f980
mov dword [esp + 0x90], 0xffffffff
lea ecx, [esp + 0x60]
call fcn.0054f980
mov eax, 0xfffffffd
jmp 0x550a3a
or ebx, 0xffffffff
jmp 0x55046f
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x5509b6
lea ecx, [esp + 0x60]
push ecx
call fcn.0054fbb0
add esp, 4
lea ecx, [esp + 0x60]
push esi
call fcn.0054f800
mov edx, dword [esp + 0x18]
mov dword [esi + 0x10], edx
mov esi, dword [esp + 0xa4]
test esi, esi
je 0x5509e4
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push 0
push eax
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.00550b10
add esp, 0x10
lea ecx, [esp + 0x24]
push esi
call fcn.0054f800
lea ecx, [esp + 0x74]
mov byte [esp + 0x90], 3
call fcn.0054f980
lea ecx, [esp + 0x4c]
mov byte [esp + 0x90], 2
call fcn.0054f980
lea ecx, [esp + 0x38]
mov byte [esp + 0x90], 1
call fcn.0054f980
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 0
call fcn.0054f980
lea ecx, [esp + 0x60]
mov dword [esp + 0x90], ebx
call fcn.0054f980
xor eax, eax
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x84
ret