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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + eax]
lea esi, [esi]
mov esi, dword [esp + 0x70]
test esi, esi
jg 0x555d48
mov ebx, dword [esp + 0x74]
test ebx, ebx
jg 0x555d48
mov ecx, dword [esp + 0x78]
test ecx, ecx
jle 0x556390
sub ebp, 1
test ebp, ebp
jle 0x556390
mov eax, dword [0x59ad30]
mov ecx, 0x5ba360
sub eax, 2
mov dword [esp], eax
call fcn.00499e90
mov ecx, 0x5ba360
mov ebx, eax
mov eax, dword [0x59ad2c]
sub esp, 4
sub eax, 2
mov dword [esp], eax
call fcn.00499e90
movsx edx, bx
movsx edi, ax
mov esi, eax
lea eax, [eax + 1]
sub esp, 4
cwde
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], eax
lea eax, [ebx + 1]
cwde
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 0x2c], edx
call fcn.005558e0
sub esp, 0x10
test eax, eax
je 0x555b20
mov eax, dword [0x59ad30]
imul eax, edi
add eax, dword [esp + 0x2c]
imul eax, eax, 0xe
add eax, dword [ecx + 8]
mov ecx, 0x5b5780
movsx eax, word [eax + 2]
imul eax, eax, 0x1c
add eax, dword [0x5b67e4]
movsx eax, byte [eax - 0x14]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 1
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x5abbd8
call fcn.004c0a40
sub esp, 0x20
test ax, ax
je 0x555b20
cwde
mov ecx, 0x5b5780
mov dword [esp], eax
mov dword [esp + 0x40], eax
call fcn.004c0950
sub esp, 4
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + 8]
mov edx, dword [0x59ad30]
mov dword [esp + 0x34], ecx
movsx cx, byte [eax + 7]
mov dword [esp + 0x3c], edx
lea ecx, [ecx + ebx - 1]
movsx ebx, cx
mov ecx, dword [0x5b67e4]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ecx
mov ecx, edx
mov edx, dword [esp + 0x30]
imul ecx, edi
add ecx, ebx
mov ebx, dword [esp + 0x34]
imul ecx, ecx, 0xe
movsx ecx, word [ebx + ecx + 2]
movzx ebx, byte [eax + 9]
imul ecx, ecx, 0x1c
movzx ecx, byte [edx + ecx - 0x14]
cmp cl, bl
jl 0x555b20
movzx edx, byte [eax + 0xa]
mov byte [esp + 0x4a], dl
cmp cl, dl
jg 0x555b20
movsx ax, byte [eax + 8]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
lea eax, [eax + esi - 1]
mov esi, dword [esp + 0x2c]
cwde
imul ecx, eax
lea eax, [esi + ecx]
imul eax, eax, 0xe
movsx eax, word [edx + eax + 2]
mov edx, dword [esp + 0x30]
imul eax, eax, 0x1c
movzx eax, byte [edx + eax - 0x14]
cmp al, bl
jl 0x555b20
movzx edx, byte [esp + 0x4a]
cmp al, dl
jg 0x555b20
mov eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x34]
imul eax, eax, 0xe
movsx eax, word [ecx + eax + 2]
mov ecx, dword [esp + 0x30]
imul eax, eax, 0x1c
movzx eax, byte [ecx + eax - 0x14]
cmp al, bl
jl 0x555b20
cmp al, dl
jg 0x555b20
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00555980
sub esp, 0xc
sub dword [esp + 0x78], 1
jmp 0x555b20
sub ebp, 1
test ebp, ebp
jle 0x556390
mov edx, dword [esp + 0x70]
mov eax, dword [0x59ad30]
test edx, edx
jle 0x555de8
sub eax, 0xf
mov ecx, 0x5ba360
mov dword [esp], eax
call fcn.00499e90
mov edi, dword [0x59ad2c]
mov ecx, 0x5ba360
sub esp, 4
mov ebx, eax
lea eax, [eax + 6]
mov word [esp + 0x2c], ax
lea eax, [edi - 0xf]
mov dword [esp], eax
call fcn.00499e90
lea edx, [eax + 6]
mov edi, eax
lea eax, [eax + 9]
sub esp, 4
cwde
mov word [esp + 0x34], dx
movsx esi, dx
movsx edx, word [esp + 0x2c]
mov dword [esp + 0xc], eax
lea eax, [ebx + 9]
mov ecx, dword [esp + 0x28]
cwde
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0x30], edx
call fcn.005558e0
sub esp, 0x10
test eax, eax
jne 0x555e60
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x555e4c
mov eax, dword [0x59ad30]
sub eax, 6
mov ecx, 0x5ba360
mov dword [esp], eax
call fcn.00499e90
mov ecx, 0x5ba360
mov ebx, eax
mov eax, dword [0x59ad2c]
sub esp, 4
sub eax, 6
mov dword [esp], eax
call fcn.00499e90
movsx ecx, bx
movsx edi, ax
mov esi, eax
lea eax, [eax + 5]
sub esp, 4
cwde
mov dword [esp], ecx
mov dword [esp + 0xc], eax
lea eax, [ebx + 5]
cwde
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
call fcn.005558e0
sub esp, 0x10
test eax, eax
jne 0x556200
mov edi, dword [esp + 0x78]
test edi, edi
jle 0x555b20
jmp 0x555b4f
mov eax, dword [0x59ad30]
imul eax, esi
add eax, dword [esp + 0x30]
imul eax, eax, 0xe
add eax, dword [ecx + 8]
mov ecx, 0x5b5780
movsx eax, word [eax + 2]
imul eax, eax, 0x1c
add eax, dword [0x5b67e4]
movsx eax, byte [eax - 0x14]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], 1
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], 0x5abbd8
call fcn.004c0a40
sub esp, 0x20
test ax, ax
je 0x555b20
movsx edx, ax
mov ecx, 0x5b5780
mov dword [esp], edx
mov dword [esp + 0x44], edx
call fcn.004c0950
sub esp, 4
mov ecx, eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 8]
mov eax, dword [0x59ad30]
mov dword [esp + 0x38], edx
movsx dx, byte [ecx + 7]
lea edx, [edx + ebx + 5]
movsx ebx, dx
mov edx, ebx
mov ebx, dword [0x5b67e4]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], ebx
mov ebx, esi
imul ebx, eax
add ebx, edx
mov edx, dword [esp + 0x38]
imul ebx, ebx, 0xe
movsx ebx, word [edx + ebx + 2]
mov edx, dword [esp + 0x3c]
imul ebx, ebx, 0x1c
movzx ebx, byte [edx + ebx - 0x14]
movzx edx, byte [ecx + 9]
mov byte [esp + 0x4a], dl
cmp bl, dl
jl 0x555ddb
movzx edx, byte [ecx + 0xa]
cmp bl, dl
jg 0x555ddb
movsx cx, byte [ecx + 8]
mov ebx, dword [esp + 0x38]
lea ecx, [ecx + edi + 5]
mov edi, dword [esp + 0x30]
movsx ecx, cx
imul ecx, eax
lea eax, [ecx + edi]
imul eax, eax, 0xe
movsx eax, word [ebx + eax + 2]
mov ebx, dword [esp + 0x3c]
imul eax, eax, 0x1c
movzx eax, byte [ebx + eax - 0x14]
cmp al, dl
jg 0x555ddb
movzx ebx, byte [esp + 0x4a]
cmp al, bl
jl 0x555ddb
mov eax, dword [esp + 0x40]
add eax, ecx
mov ecx, dword [esp + 0x38]
imul eax, eax, 0xe
movsx eax, word [ecx + eax + 2]
mov ecx, dword [esp + 0x3c]
imul eax, eax, 0x1c
movzx eax, byte [ecx + eax - 0x14]
cmp al, bl
jl 0x555ddb
cmp al, dl
jg 0x555ddb
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], edx
call fcn.00555980
mov ecx, 0x5ba360
sub esp, 0xc
mov dword [esp], 0xe
call fcn.00499e90
sub esp, 4
mov dword [esp + 0x30], eax
test eax, eax
jle 0x55639e
mov dword [esp + 0x4c], ebp
jmp 0x556011
sub dword [esp + 0x30], 1
je 0x55639a
mov dword [esp], 0xe
mov ecx, 0x5ba360
call fcn.00499e90
mov ecx, 0x5ba360
sub esp, 4
mov dword [esp], 0xe
movzx esi, word [esp + 0x2c]
lea ebx, [esi + eax]
call fcn.00499e90
lea esi, [ebx - 6]
sub esp, 4
movsx esi, si
movzx edi, word [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov dword [esp], esi
lea ebp, [edi + eax]
lea eax, [ebp - 5]
lea edi, [ebp - 6]
cwde
movsx edi, di
mov dword [esp + 0xc], eax
lea eax, [ebx - 5]
cwde
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.005558e0
sub esp, 0x10
test eax, eax
je 0x556006
mov eax, dword [0x59ad30]
imul eax, edi
add eax, esi
imul eax, eax, 0xe
add eax, dword [ecx + 8]
mov ecx, 0x5b5780
movsx eax, word [eax + 2]
imul eax, eax, 0x1c
add eax, dword [0x5b67e4]
movsx eax, byte [eax - 0x14]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 1
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x5abbd8
call fcn.004c0a40
sub esp, 0x20
test ax, ax
je 0x556006
cwde
mov ecx, 0x5b5780
mov dword [esp], eax
mov dword [esp + 0x44], eax
call fcn.004c0950
sub esp, 4
movzx edx, byte [eax + 8]
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x4b], dl
mov edx, dword [ecx + 8]
movsx cx, byte [eax + 7]
lea ecx, [ebx + ecx - 7]
mov dword [esp + 0x3c], edx
mov edx, dword [0x59ad30]
movsx ebx, cx
mov ecx, dword [0x5b67e4]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], ecx
mov ecx, edi
imul ecx, edx
add ecx, ebx
mov ebx, dword [esp + 0x3c]
imul ecx, ecx, 0xe
movsx ecx, word [ebx + ecx + 2]
mov ebx, dword [esp + 0x38]
imul ecx, ecx, 0x1c
movzx ebx, byte [ebx + ecx - 0x14]
movzx ecx, byte [eax + 9]
mov byte [esp + 0x4a], cl
cmp bl, cl
jl 0x556006
movzx ecx, byte [eax + 0xa]
cmp bl, cl
jg 0x556006
movsx ax, byte [esp + 0x4b]
mov ebx, dword [esp + 0x38]
lea eax, [ebp + eax - 7]
mov ebp, dword [esp + 0x3c]
cwde
imul edx, eax
lea eax, [esi + edx]
imul eax, eax, 0xe
movsx eax, word [ebp + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [ebx + eax - 0x14]
movzx ebx, byte [esp + 0x4a]
cmp al, bl
jl 0x556006
cmp al, cl
jg 0x556006
mov eax, dword [esp + 0x40]
add eax, edx
mov edx, dword [esp + 0x38]
imul eax, eax, 0xe
movsx eax, word [ebp + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [edx + eax - 0x14]
cmp al, bl
jl 0x556006
cmp al, cl
jg 0x556006
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00555980
sub esp, 0xc
jmp 0x556006
mov eax, dword [0x59ad30]
imul eax, edi
add eax, dword [esp + 0x2c]
imul eax, eax, 0xe
add eax, dword [ecx + 8]
mov ecx, 0x5b5780
movsx eax, word [eax + 2]
imul eax, eax, 0x1c
add eax, dword [0x5b67e4]
movsx eax, byte [eax - 0x14]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 6
mov dword [esp + 0xc], 5
mov dword [esp + 8], 6
mov dword [esp + 4], 3
mov dword [esp], 0x5abbd8
call fcn.004c0a40
sub esp, 0x20
test ax, ax
je 0x555b20
cwde
mov ecx, 0x5b5780
mov dword [esp], eax
mov dword [esp + 0x40], eax
call fcn.004c0950
sub esp, 4
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 8]
movsx cx, byte [eax + 7]
mov dword [esp + 0x30], edx
mov edx, dword [0x59ad30]
lea ecx, [ecx + ebx - 1]
movsx ebx, cx
mov dword [esp + 0x3c], edx
imul edx, edi
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x34]
mov ebx, dword [0x5b67e4]
add ecx, edx
mov edx, dword [esp + 0x30]
imul ecx, ecx, 0xe
movsx ecx, word [edx + ecx + 2]
movzx edx, byte [eax + 9]
imul ecx, ecx, 0x1c
mov byte [esp + 0x38], dl
movzx ecx, byte [ebx + ecx - 0x14]
cmp cl, dl
jl 0x555e4c
movzx edx, byte [eax + 0xa]
mov byte [esp + 0x4a], dl
cmp cl, dl
jg 0x555e4c
movsx ax, byte [eax + 8]
mov edx, dword [esp + 0x30]
lea eax, [eax + esi - 1]
mov esi, dword [esp + 0x3c]
cwde
imul esi, eax
mov ecx, esi
mov esi, dword [esp + 0x2c]
lea eax, [esi + ecx]
imul eax, eax, 0xe
movsx eax, word [edx + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [ebx + eax - 0x14]
cmp al, byte [esp + 0x38]
jl 0x555e4c
movzx edx, byte [esp + 0x4a]
cmp al, dl
jg 0x555e4c
mov eax, dword [esp + 0x34]
add eax, ecx
mov ecx, dword [esp + 0x30]
imul eax, eax, 0xe
movsx eax, word [ecx + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [ebx + eax - 0x14]
cmp al, dl
jg 0x555e4c
cmp al, byte [esp + 0x38]
jl 0x555e4c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00555980
sub esp, 0xc
sub dword [esp + 0x74], 1
jmp 0x555e4c
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov ebp, dword [esp + 0x4c]
sub dword [esp + 0x70], 1
jmp 0x555ddb