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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x550b93
sub esp, 0x6c
mov eax, dword [esp + 0x80]
cmp eax, 0x102
jge 0x550b5f
mov ecx, dword [esp + 0x70]
test byte [ecx], al
mov edx, dword [ecx + 0xa003c]
mov ebx, dword [ecx + 0xa0044]
mov ebp, dword [esp + 0x74]
lea esi, [eax + ebp]
cmp esi, ebx
ja 0x550b8c
mov edi, dword [ecx + 0xc]
cmp edi, eax
jge 0x550b58
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], edi
mov edi, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x7c]
cmp ecx, eax
jl 0x550930
sar edi, 2
lea eax, [ecx + ebp]
cmp eax, esi
jae 0x550b85
movzx eax, byte [edx + eax]
cmp ebp, esi
ja 0x550b7e
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x64], edx
sub ebx, ebp
mov dword [esp + 0x2c], ebx
neg ebx
sar ebx, 0x1f
and ebx, ebp
add ebx, edx
mov dword [esp + 0x68], ebx
add ebp, 0xffff8000
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x5c], al
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov byte [esp + 0x23], cl
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x54]
movzx eax, byte [esp + 0x5c]
jmp 0x5509b0
mov edx, dword [esp + 0x30]
dec edx
mov dword [esp + 0x40], ebx
xchg edi, eax
mov byte [esp + 0x23], al
xchg edi, eax
mov ebx, dword [esp + 0x68]
mov edi, edx
mov edx, dword [esp + 0x64]
test edi, edi
jle 0x550b4a
mov dword [esp + 0x30], edi
mov ebx, dword [esp + 0x40]
lea edi, [ebx + ecx]
cmp edi, esi
jae 0x550b77
movzx edi, byte [edx + edi]
xchg edi, ebx
cmp al, bl
xchg edi, ebx
je 0x550a24
movzx edi, byte [esp + 0x23]
cmp ebx, ebp
je 0x550a1e
and ebx, 0x7fff
mov edx, dword [esp + 0x70]
mov ebx, dword [edx + ebx*4 + 0x80034]
sub ebx, dword [edx + 0xa0034]
cmp ebx, ebp
jl 0x5509ff
test ebx, ebx
jge 0x550997
mov eax, dword [esp + 0x48]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
xchg edi, eax
mov byte [esp + 0x8c], al
xchg edi, eax
add esp, 0x6c
ret
mov eax, dword [esp + 0x48]
jmp 0x550a03
cmp ebx, esi
ja 0x550b70
mov dword [esp + 0x44], ecx
mov byte [esp + 0x22], al
mov eax, dword [esp + 0x28]
sub eax, ebx
mov ebp, eax
neg eax
sar eax, 0x1f
and eax, ebx
add eax, edx
mov dword [esp], eax
sub esi, ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
call fcn.00550d10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jle 0x550b28
cmp eax, 4
jle 0x550af5
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x40]
mov ebx, ecx
sub ecx, edx
mov ebp, dword [esp + 0x34]
cmp eax, ebp
jge 0x550ae5
lea esi, [eax + ebx]
mov edi, dword [esp + 0x24]
cmp esi, edi
jae 0x550b69
mov ebp, dword [esp + 0x64]
movzx esi, byte [ebp + esi]
mov dword [esp + 0x4c], eax
mov eax, 1
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x4c]
mov ebx, edx
mov ebp, dword [esp + 0x3c]
movzx edi, byte [esp + 0x23]
mov dword [esp + 0x48], ecx
mov ecx, eax
mov edx, dword [esp + 0x64]
mov eax, esi
mov esi, dword [esp + 0x24]
jmp 0x5509dc
mov edi, 1
mov edx, ecx
mov ecx, eax
mov eax, edx
jmp 0x550a03
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x40]
mov ebp, edx
sub edx, ebx
cmp edx, 0x1000
jle 0x550a88
mov edx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x24]
movzx esi, byte [esp + 0x22]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
jmp 0x550ac5
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x24]
movzx esi, byte [esp + 0x22]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
jmp 0x550ac5
mov eax, dword [esp + 0x48]
movzx edi, byte [esp + 0x23]
jmp 0x550a03
mov edi, eax
jmp 0x550917
mov eax, 0x102
jmp 0x5508eb
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.00449d70
jmp fcn.005508c0