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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
add eax, dword [esp + 0x78]
add eax, eax
mov dword [esp + 0x24], eax
lea esi, [esi]
mov esi, dword [esp + 0x70]
test esi, esi
jg 0x556850
mov ebx, dword [esp + 0x74]
test ebx, ebx
jg 0x556850
mov ecx, dword [esp + 0x78]
test ecx, ecx
jle 0x556df0
sub dword [esp + 0x24], 1
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x556df0
mov eax, dword [0x59ad30]
mov ecx, 0x5ba360
sub eax, 2
mov dword [esp], eax
call fcn.00499e90
mov ecx, 0x5ba360
sub esp, 4
mov esi, eax
mov dword [esp + 0x3c], eax
mov eax, dword [0x59ad2c]
movsx ebp, si
sub eax, 2
mov dword [esp], eax
call fcn.00499e90
mov edi, eax
sub esp, 4
add edi, 1
mov dword [esp + 0x40], eax
movsx ebx, di
mov edi, esi
lea ecx, [edi + 1]
movsx edi, ax
mov dword [esp + 0x2c], ebx
movsx ecx, cx
cmp ebx, edi
jl 0x556e2c
mov eax, dword [0x59ad30]
mov esi, dword [esp + 0x28]
imul ebx, eax, 0xe
mov dword [esp + 0x34], eax
mov esi, dword [esi + 8]
imul eax, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ebx
mov ebx, eax
add ebx, ebp
imul ebx, ebx, 0xe
add ebx, esi
mov esi, edi
mov eax, ebx
mov edx, ebp
cmp ecx, ebp
jl 0x5566bb
lea esi, [esi]
test byte [eax], 0xf0
jne 0x5565e0
add edx, 1
add eax, 0xe
cmp ecx, edx
jge 0x5566a8
add esi, 1
add ebx, dword [esp + 0x30]
cmp dword [esp + 0x2c], esi
jge 0x55669a
mov esi, dword [esp + 0x34]
mov ecx, 0x5b5780
imul esi, edi
lea eax, [esi + ebp]
mov esi, dword [esp + 0x38]
imul eax, eax, 0xe
movsx eax, word [esi + 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], 0x5abbda
call fcn.004c0a40
sub esp, 0x20
test ax, ax
je 0x5565e0
cwde
mov ecx, 0x5b5780
mov dword [esp], eax
mov dword [esp + 0x38], eax
call fcn.004c0950
mov ebx, dword [0x59ad30]
sub esp, 4
movsx dx, byte [eax + 7]
movzx ecx, word [esp + 0x3c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x34], ebx
lea edx, [edx + ecx - 1]
mov esi, dword [esi + 8]
movsx ecx, dx
mov edx, dword [0x5b67e4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
mov edx, ebx
mov ebx, dword [esp + 0x2c]
imul edx, edi
add edx, ecx
movzx ecx, byte [eax + 9]
imul edx, edx, 0xe
movsx edx, word [esi + edx + 2]
imul edx, edx, 0x1c
movzx edx, byte [ebx + edx - 0x14]
cmp dl, cl
jl 0x5565e0
movzx ebx, byte [eax + 0xa]
cmp dl, bl
jg 0x5565e0
movzx edx, word [esp + 0x40]
movsx ax, byte [eax + 8]
lea eax, [eax + edx - 1]
mov edx, dword [esp + 0x34]
cwde
imul edx, eax
mov eax, edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
add eax, ebp
imul eax, eax, 0xe
movsx eax, word [esi + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [edx + eax - 0x14]
cmp al, cl
jl 0x5565e0
cmp al, bl
jg 0x5565e0
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x34]
imul eax, eax, 0xe
movsx eax, word [esi + eax + 2]
mov esi, dword [esp + 0x2c]
imul eax, eax, 0x1c
movzx eax, byte [esi + eax - 0x14]
cmp al, cl
jl 0x5565e0
cmp al, bl
jg 0x5565e0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.00556440
sub esp, 0xc
sub dword [esp + 0x78], 1
jmp 0x5565e0
sub dword [esp + 0x24], 1
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x556df0
mov edx, dword [esp + 0x70]
mov eax, dword [0x59ad30]
test edx, edx
jle 0x556934
sub eax, 0xf
mov ecx, 0x5ba360
mov dword [esp], eax
call fcn.00499e90
mov ecx, 0x5ba360
sub esp, 4
lea ebx, [eax + 6]
mov esi, eax
mov dword [esp + 0x3c], eax
mov eax, dword [0x59ad2c]
movsx ebp, bx
mov word [esp + 0x44], bx
sub eax, 0xf
mov dword [esp], eax
call fcn.00499e90
mov edi, eax
sub esp, 4
lea edx, [edi + 6]
lea edi, [eax + 9]
mov dword [esp + 0x40], eax
movsx eax, di
mov edi, esi
mov word [esp + 0x46], dx
lea ecx, [edi + 9]
movsx edi, dx
mov dword [esp + 0x2c], eax
movsx ecx, cx
cmp eax, edi
jl 0x556dfa
mov eax, dword [0x59ad30]
mov esi, dword [esp + 0x28]
imul ebx, eax, 0xe
mov dword [esp + 0x34], eax
mov esi, dword [esi + 8]
imul eax, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ebx
mov ebx, eax
add ebx, ebp
imul ebx, ebx, 0xe
add ebx, esi
mov esi, edi
mov eax, ebx
mov edx, ebp
cmp ecx, ebp
jge 0x55691e
jmp 0x5569f0
add edx, 1
add eax, 0xe
cmp ecx, edx
jl 0x5569f0
test byte [eax], 0xf0
je 0x556910
mov ebp, dword [esp + 0x74]
test ebp, ebp
jle 0x5569db
mov eax, dword [0x59ad30]
sub eax, 6
mov ecx, 0x5ba360
mov dword [esp], eax
call fcn.00499e90
mov ecx, 0x5ba360
sub esp, 4
mov esi, eax
mov dword [esp + 0x3c], eax
mov eax, dword [0x59ad2c]
movsx ebp, si
sub eax, 6
mov dword [esp], eax
call fcn.00499e90
mov edi, eax
sub esp, 4
add edi, 5
mov dword [esp + 0x40], eax
movsx ebx, di
mov edi, esi
lea ecx, [edi + 5]
movsx edi, ax
mov dword [esp + 0x2c], ebx
movsx ecx, cx
cmp ebx, edi
jl 0x556e13
mov eax, dword [0x59ad30]
mov esi, dword [esp + 0x28]
imul ebx, eax, 0xe
mov dword [esp + 0x34], eax
mov esi, dword [esi + 8]
imul eax, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ebx
mov ebx, eax
add ebx, ebp
imul ebx, ebx, 0xe
add ebx, esi
mov esi, edi
mov eax, ebx
mov edx, ebp
cmp ecx, ebp
jge 0x5569d6
jmp 0x556c60
add edx, 1
add eax, 0xe
cmp ecx, edx
jl 0x556c60
test byte [eax], 0xf0
je 0x5569c8
mov edi, dword [esp + 0x78]
test edi, edi
jle 0x5565e0
jmp 0x556615
add esi, 1
add ebx, dword [esp + 0x30]
cmp dword [esp + 0x2c], esi
jge 0x556902
mov esi, dword [esp + 0x34]
mov ecx, 0x5b5780
imul esi, edi
lea eax, [esi + ebp]
mov esi, dword [esp + 0x38]
imul eax, eax, 0xe
movsx eax, word [esi + 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], 0x5abbda
call fcn.004c0a40
sub esp, 0x20
test ax, ax
je 0x5565e0
cwde
mov ecx, 0x5b5780
mov dword [esp], eax
mov dword [esp + 0x34], eax
call fcn.004c0950
sub esp, 4
mov edx, eax
mov eax, dword [0x59ad30]
mov esi, dword [esp + 0x28]
movsx cx, byte [edx + 7]
mov ebx, dword [esi + 8]
mov esi, dword [0x5b67e4]
mov dword [esp + 0x2c], ebx
movzx ebx, word [esp + 0x3c]
lea ecx, [ecx + ebx + 5]
movsx ebx, cx
mov ecx, edi
imul ecx, eax
mov dword [esp + 0x30], ebx
add ecx, ebx
mov ebx, dword [esp + 0x2c]
imul ecx, ecx, 0xe
movsx ecx, word [ebx + ecx + 2]
movzx ebx, byte [edx + 9]
imul ecx, ecx, 0x1c
mov byte [esp + 0x38], bl
movzx ecx, byte [esi + ecx - 0x14]
cmp cl, bl
jl 0x556923
movzx ebx, byte [edx + 0xa]
cmp cl, bl
jg 0x556923
movzx ecx, word [esp + 0x40]
movsx dx, byte [edx + 8]
mov byte [esp + 0x3c], bl
lea edx, [edx + ecx + 5]
mov ecx, dword [esp + 0x2c]
movsx edx, dx
imul edx, eax
lea eax, [edx + ebp]
imul eax, eax, 0xe
movsx eax, word [ecx + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [esi + eax - 0x14]
cmp al, bl
jg 0x556923
movzx ebx, byte [esp + 0x38]
cmp al, bl
jl 0x556923
mov eax, dword [esp + 0x30]
add eax, edx
mov edx, dword [esp + 0x2c]
imul eax, eax, 0xe
movsx eax, word [edx + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [esi + eax - 0x14]
cmp al, byte [esp + 0x3c]
jg 0x556923
cmp al, bl
jl 0x556923
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.00556440
mov ecx, 0x5ba360
sub esp, 0xc
mov dword [esp], 0xe
call fcn.00499e90
sub esp, 4
mov dword [esp + 0x40], eax
test eax, eax
jle 0x556c56
mov dword [esp], 0xe
mov ecx, 0x5ba360
call fcn.00499e90
mov ecx, 0x5ba360
sub esp, 4
movzx edi, word [esp + 0x44]
mov dword [esp], 0xe
add edi, eax
mov word [esp + 0x34], di
lea esi, [edi - 6]
call fcn.00499e90
lea ecx, [edi - 5]
movsx esi, si
sub esp, 4
movsx ecx, cx
add ax, word [esp + 0x46]
lea ebx, [eax - 6]
mov word [esp + 0x38], ax
sub eax, 5
cwde
movsx edx, bx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], edx
cmp eax, edx
jl 0x556fe8
mov edi, dword [0x59ad30]
mov eax, dword [esp + 0x28]
imul ebx, edi, 0xe
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], ebx
mov ebx, edx
imul ebx, edi
mov ebp, ebx
mov ebx, edx
add ebp, esi
imul ebp, ebp, 0xe
add ebp, eax
mov eax, ebp
mov edx, esi
cmp ecx, esi
jge 0x556c46
jmp 0x556e45
add edx, 1
add eax, 0xe
cmp ecx, edx
jl 0x556e45
test byte [eax], 0xf0
je 0x556c38
sub dword [esp + 0x40], 1
jne 0x556b99
sub dword [esp + 0x70], 1
jmp 0x556923
add esi, 1
add ebx, dword [esp + 0x30]
cmp dword [esp + 0x2c], esi
jge 0x5569b4
mov esi, dword [esp + 0x34]
mov ecx, 0x5b5780
imul esi, edi
lea eax, [esi + ebp]
mov esi, dword [esp + 0x38]
imul eax, eax, 0xe
movsx eax, word [esi + 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], 3
mov dword [esp + 8], 6
mov dword [esp + 4], 3
mov dword [esp], 0x5abbda
call fcn.004c0a40
sub esp, 0x20
test ax, ax
je 0x5565e0
cwde
mov ecx, 0x5b5780
mov dword [esp], eax
mov dword [esp + 0x38], eax
call fcn.004c0950
mov ebx, dword [0x59ad30]
sub esp, 4
movsx dx, byte [eax + 7]
movzx ecx, word [esp + 0x3c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x34], ebx
lea edx, [edx + ecx - 1]
mov esi, dword [esi + 8]
movsx ecx, dx
mov edx, dword [0x5b67e4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
mov edx, ebx
mov ebx, dword [esp + 0x2c]
imul edx, edi
add edx, ecx
movzx ecx, byte [eax + 9]
imul edx, edx, 0xe
movsx edx, word [esi + edx + 2]
imul edx, edx, 0x1c
movzx edx, byte [ebx + edx - 0x14]
cmp dl, cl
jl 0x5569db
movzx ebx, byte [eax + 0xa]
cmp dl, bl
jg 0x5569db
movzx edx, word [esp + 0x40]
movsx ax, byte [eax + 8]
lea eax, [eax + edx - 1]
mov edx, dword [esp + 0x34]
cwde
imul edx, eax
mov eax, edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
add eax, ebp
imul eax, eax, 0xe
movsx eax, word [esi + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [edx + eax - 0x14]
cmp al, cl
jl 0x5569db
cmp al, bl
jg 0x5569db
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x34]
imul eax, eax, 0xe
movsx eax, word [esi + eax + 2]
mov esi, dword [esp + 0x2c]
imul eax, eax, 0x1c
movzx eax, byte [esi + eax - 0x14]
cmp al, cl
jl 0x5569db
cmp al, bl
jg 0x5569db
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.00556440
sub esp, 0xc
sub dword [esp + 0x74], 1
jmp 0x5569db
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
mov eax, dword [0x59ad30]
mov dword [esp + 0x34], eax
jmp 0x556a01
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
mov eax, dword [0x59ad30]
mov dword [esp + 0x34], eax
jmp 0x556c71
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
mov eax, dword [0x59ad30]
mov dword [esp + 0x34], eax
jmp 0x5566c8
add dword [esp + 0x2c], 1
add ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x3c], eax
jge 0x556c25
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x2c]
mov ecx, 0x5b5780
imul eax, edi
mov edi, dword [esp + 0x30]
add eax, esi
imul eax, eax, 0xe
movsx eax, word [edi + 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], 0x5abbda
call fcn.004c0a40
sub esp, 0x20
test ax, ax
je 0x556c4b
movsx ebp, ax
mov ecx, 0x5b5780
mov dword [esp], ebp
call fcn.004c0950
sub esp, 4
movzx ecx, byte [eax + 8]
movsx dx, byte [eax + 7]
mov edi, dword [esp + 0x28]
movzx ebx, word [esp + 0x34]
mov byte [esp + 0x3c], cl
mov ecx, dword [edi + 8]
mov edi, dword [0x59ad30]
lea edx, [ebx + edx - 7]
movsx ebx, dx
mov edx, dword [0x5b67e4]
mov dword [esp + 0x4c], edi
imul edi, dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ebx
add edi, ebx
imul edi, edi, 0xe
movsx edi, word [ecx + edi + 2]
imul edi, edi, 0x1c
movzx edi, byte [edx + edi - 0x14]
movzx edx, byte [eax + 9]
mov ebx, edi
mov byte [esp + 0x48], dl
cmp bl, dl
jl 0x556c4b
movzx eax, byte [eax + 0xa]
mov edx, eax
cmp bl, al
jg 0x556c4b
movzx ebx, word [esp + 0x38]
movsx ax, byte [esp + 0x3c]
mov edi, dword [esp + 0x4c]
lea eax, [ebx + eax - 7]
mov ebx, dword [esp + 0x30]
cwde
imul edi, eax
lea eax, [esi + edi]
imul eax, eax, 0xe
movsx eax, word [ecx + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [ebx + eax - 0x14]
mov ebx, edx
cmp al, dl
jg 0x556c4b
movzx edx, byte [esp + 0x48]
cmp al, dl
jl 0x556c4b
mov eax, dword [esp + 0x34]
add eax, edi
mov edi, dword [esp + 0x30]
imul eax, eax, 0xe
movsx eax, word [ecx + eax + 2]
imul eax, eax, 0x1c
movzx eax, byte [edi + eax - 0x14]
cmp al, dl
jl 0x556c4b
cmp al, bl
jg 0x556c4b
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], esi
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.00556440
sub esp, 0xc
jmp 0x556c4b
mov eax, dword [esp + 0x28]
mov edi, dword [0x59ad30]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
jmp 0x556e60