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

Disassembly:
push 0xffffffffffffffff
push 0x58f15b
mov eax, dword fs:[0]
push eax
sub esp, 0xfc
mov eax, dword [0x5d5de8]
xor eax, esp
mov dword [esp + 0xf8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5d5de8]
xor eax, esp
push eax
lea eax, [esp + 0x110]
mov dword fs:[0], eax
mov eax, dword [esp + 0x128]
mov ebx, ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], ecx
mov eax, 0xf
mov dword [esp + 0x70], ebx
mov dword [esp + 0x108], eax
mov dword [esp + 0x104], ecx
mov byte [esp + 0xf4], cl
mov dword [esp + 0x118], ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ecx
mov byte [esp + 0xa0], cl
mov dword [esp + 0xd0], eax
mov dword [esp + 0xcc], ecx
mov byte [esp + 0xbc], cl
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], ecx
mov byte [esp + 0xd8], cl
mov eax, dword [ebx + 0x140]
cmp eax, ecx
mov byte [esp + 0x118], 3
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
je 0x55b624
mov ecx, dword [ebx + 0x144]
sub ecx, eax
sar ecx, 4
cmp dword [esp + 0x120], ecx
jb 0x55b629
call fcn.0056999e
mov edi, dword [esp + 0x120]
mov esi, dword [ebx + 0x140]
mov ebp, dword [esp + 0x124]
shl edi, 4
mov ecx, dword [esi + edi + 4]
add esi, edi
test ecx, ecx
mov dword [esp + 0x6c], edi
je 0x55b65a
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x55b65f
call fcn.0056999e
mov ecx, dword [esi + 4]
cmp dword [ecx + ebp*4], 0
mov esi, dword [esp + 0x120]
jne 0x55b833
mov edx, dword [ebx]
mov eax, dword [edx + 0x128]
push 1
push ebp
push esi
mov ecx, ebx
call eax
test al, al
je 0x55b833
mov ecx, dword [ebx + 0x140]
test ecx, ecx
je 0x55b6a4
mov eax, dword [ebx + 0x144]
sub eax, ecx
sar eax, 4
cmp esi, eax
jb 0x55b6a9
call fcn.0056999e
mov esi, dword [ebx + 0x140]
mov ecx, dword [esi + edi + 4]
add esi, edi
test ecx, ecx
je 0x55b6c5
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x55b6ca
call fcn.0056999e
mov ecx, dword [esi + 4]
mov dword [ecx + ebp*4], 1
mov dword [ebx + 0x118], 1
mov ecx, dword [ebx + 0xdc]
test ecx, ecx
je 0x55b6fc
mov eax, dword [ebx + 0xe0]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x120], eax
jb 0x55b701
call fcn.0056999e
mov esi, dword [ebx + 0xdc]
mov ecx, dword [esi + edi + 4]
add esi, edi
test ecx, ecx
je 0x55b71d
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x55b722
call fcn.0056999e
mov edx, dword [esi + 4]
cmp dword [edx + ebp*4], 0
lea ecx, [esp + 0xf0]
je 0x55b7ad
push 5
push str.solid
call fcn.0043dd50
push 7
push str.Globe_d
lea ecx, [esp + 0xa4]
call fcn.0043dd50
push 0xb
push str.SolidSand_d
lea ecx, [esp + 0xc0]
call fcn.0043dd50
cmp dword [ebx + 0x174], 0
je 0x55b9fd
push str.revealed_tile
lea ecx, [esp + 0xd8]
call fcn.00438a40
mov ecx, dword [ebx + 0x174]
mov eax, dword [ecx + 0x38]
mov esi, dword [ecx + 0x34]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ecx + 0x30]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
lea eax, [ebx + 0x188]
mov dword [esp + 0x30], eax
jmp 0x55b9fd
push 0xc
push str.invalid_hole
call fcn.0043dd50
push 6
push str.Hole_d
lea ecx, [esp + 0xa4]
call fcn.0043dd50
push 0xa
push str.HoleSand_d
lea ecx, [esp + 0xc0]
call fcn.0043dd50
cmp dword [ebx + 0x178], 0
je 0x55b827
push str.incorrectly_revealed_hole
lea ecx, [esp + 0xd8]
call fcn.00438a40
mov ecx, dword [ebx + 0x17c]
push ecx
mov ecx, dword [ebx + 0x178]
lea edx, [esp + 0x78]
push edx
call fcn.00558d70
mov ecx, dword [eax]
mov edx, dword [eax + 4]
lea eax, [ebx + 0x194]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], eax
mov ecx, ebx
call fcn.0055a330
jmp 0x55ba04
mov ecx, dword [ebx + 0x140]
test ecx, ecx
je 0x55b84c
mov eax, dword [ebx + 0x144]
sub eax, ecx
sar eax, 4
cmp esi, eax
jb 0x55b851
call fcn.0056999e
mov esi, dword [ebx + 0x140]
mov ecx, dword [esi + edi + 4]
add esi, edi
test ecx, ecx
je 0x55b86d
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x55b872
call fcn.0056999e
mov ecx, dword [esi + 4]
cmp dword [ecx + ebp*4], 0
jne 0x55c609
mov edx, dword [ebx]
mov esi, dword [esp + 0x120]
mov eax, dword [edx + 0x128]
push 2
push ebp
push esi
mov ecx, ebx
call eax
test al, al
je 0x55c609
mov ecx, dword [ebx + 0x140]
test ecx, ecx
je 0x55b8b7
mov eax, dword [ebx + 0x144]
sub eax, ecx
sar eax, 4
cmp esi, eax
jb 0x55b8bc
call fcn.0056999e
mov esi, dword [ebx + 0x140]
mov ecx, dword [esi + edi + 4]
add esi, edi
test ecx, ecx
je 0x55b8d8
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x55b8dd
call fcn.0056999e
mov ecx, dword [esi + 4]
mov dword [ecx + ebp*4], 1
mov dword [ebx + 0x118], 2
mov ecx, dword [ebx + 0xdc]
test ecx, ecx
je 0x55b90f
mov eax, dword [ebx + 0xe0]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x120], eax
jb 0x55b914
call fcn.0056999e
mov esi, dword [ebx + 0xdc]
mov ecx, dword [esi + edi + 4]
add esi, edi
test ecx, ecx
je 0x55b930
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x55b935
call fcn.0056999e
mov edx, dword [esi + 4]
cmp dword [edx + ebp*4], 0
lea ecx, [esp + 0xf0]
jne 0x55b97c
push 4
push str.hole
call fcn.0043dd50
push 6
push str.Hole_d
lea ecx, [esp + 0xa4]
call fcn.0043dd50
push 0xa
push str.HoleSand_d
lea ecx, [esp + 0xc0]
call fcn.0043dd50
jmp 0x55ba04
push 0xd
push str.invalid_solid
call fcn.0043dd50
push 0xe
push str.CrackedGlobe_d
lea ecx, [esp + 0xa4]
call fcn.0043dd50
push 0xb
push str.SolidSand_d
lea ecx, [esp + 0xc0]
call fcn.0043dd50
cmp dword [ebx + 0x178], 0
je 0x55b9f6
push str.incorrectly_revealed_tile
lea ecx, [esp + 0xd8]
call fcn.00438a40
mov eax, dword [ebx + 0x17c]
push eax
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [ebx + 0x178]
call fcn.00558d70
mov edx, dword [eax]
mov eax, dword [eax + 4]
lea ecx, [ebx + 0x194]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ecx
mov ecx, ebx
call fcn.0055a330
mov ecx, ebx
call fcn.00558c40
mov ecx, dword [ebx + 0xdc]
test ecx, ecx
jne 0x55ba12
xor eax, eax
jmp 0x55ba1d
mov eax, dword [ebx + 0xe0]
sub eax, ecx
sar eax, 4
mov ecx, dword [esp + 0xa0]
mov edi, 0x10
cmp dword [esp + 0xb4], edi
jae 0x55ba39
lea ecx, [esp + 0xa0]
push eax
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.00472300
mov esi, eax
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x44]
push str.tile_
push ecx
mov byte [esp + 0x130], 4
call fcn.00441b60
add esp, 0x18
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov edx, dword [esp + 0x120]
push ecx
push esi
push eax
push ebp
push edx
mov ecx, ebx
mov byte [esp + 0x12c], 5
call fcn.0055b370
cmp dword [esp + 0x4c], edi
jb 0x55baa0
mov eax, dword [esp + 0x38]
push eax
call fcn.00569095
add esp, 4
cmp dword [esp + 0x98], edi
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], 0
mov byte [esp + 0x38], 0
mov byte [esp + 0x118], 3
jb 0x55bad6
mov ecx, dword [esp + 0x84]
push ecx
call fcn.00569095
add esp, 4
push 0x300
call fcn.0056980a
mov edi, eax
add esp, 4
mov dword [esp + 0x1c], edi
test edi, edi
mov byte [esp + 0x118], 6
je 0x55bb65
lea edx, [esp + 0xf0]
push edx
lea eax, [esp + 0x54]
push str.sand_
push eax
call fcn.00441b60
add esp, 0xc
mov esi, eax
mov ecx, dword [ebx + 0xe8]
mov eax, ecx
imul eax, ebp
mov dword [esp + 0x28], eax
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
add edx, eax
mov ebp, ecx
imul ebp, dword [esp + 0x120]
push edx
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add ebp, eax
push ebp
push esi
mov ecx, edi
mov byte [esp + 0x124], 7
mov dword [esp + 0x38], 1
call fcn.0054fb00
mov ebp, dword [esp + 0x124]
mov esi, eax
jmp 0x55bb67
xor esi, esi
test byte [esp + 0x2c], 1
mov dword [esp + 0x118], 3
je 0x55bba5
cmp dword [esp + 0x68], 0x10
jb 0x55bb8d
mov ecx, dword [esp + 0x54]
push ecx
call fcn.00569095
add esp, 4
mov edi, 0xf
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], 0
mov byte [esp + 0x54], 0
jmp 0x55bbaa
mov edi, 0xf
push 5
push str.delay
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], 0
mov byte [esp + 0x40], 0
call fcn.0043dd50
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x120], 9
call fcn.00554a70
cmp dword [esp + 0x4c], 0x10
mov byte [esp + 0x118], 3
jb 0x55bc02
mov edx, dword [esp + 0x38]
push edx
call fcn.00569095
add esp, 4
push 5
push str.image
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], 0
mov byte [esp + 0x40], 0
call fcn.0043dd50
mov ecx, dword [ebx + 0xdc]
test ecx, ecx
mov byte [esp + 0x118], 0xa
jne 0x55bc39
xor eax, eax
jmp 0x55bc44
mov eax, dword [ebx + 0xe0]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0xd0], 0x10
mov ecx, dword [esp + 0xbc]
jae 0x55bc5c
lea ecx, [esp + 0xbc]
push eax
push ecx
lea eax, [esp + 0x88]
push eax
call fcn.00472300
add esp, 0xc
mov edi, eax
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esi + 0x2f4]
mov byte [esp + 0x11c], 0xb
call fcn.00479370
push 0xffffffffffffffff
push 0
push edi
mov ecx, eax
call fcn.0043b2f0
cmp dword [esp + 0x98], 0x10
jb 0x55bcae
mov edx, dword [esp + 0x84]
push edx
call fcn.00569095
add esp, 4
xor edi, edi
cmp dword [esp + 0x4c], 0x10
mov dword [esp + 0x98], 0xf
mov dword [esp + 0x94], edi
mov byte [esp + 0x84], 0
mov byte [esp + 0x118], 3
jb 0x55bce6
mov eax, dword [esp + 0x38]
push eax
call fcn.00569095
add esp, 4
mov dword [esi + 0x50], 1
mov edx, dword [ebx]
mov eax, dword [edx + 0xc]
push esi
mov ecx, ebx
call eax
mov ecx, dword [esp + 0xe8]
push edi
push 0x5a5b90
push ecx
push edi
lea ecx, [esp + 0xe4]
call fcn.0043b500
test eax, eax
je 0x55bde6
push 0x338
call fcn.0056980a
mov ecx, eax
add esp, 4
mov dword [esp + 0x2c], ecx
cmp ecx, edi
mov byte [esp + 0x118], 0xc
je 0x55bdb0
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov edx, dword [esp + 0x20]
push eax
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x30]
mov dword [eax + 4], edx
mov ebp, dword [ebx + 0xe8]
mov esi, ebp
imul esi, dword [esp + 0x130]
add esi, dword [ebx + 0x34]
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
add esi, eax
mov edi, ebp
imul edi, dword [esp + 0x12c]
add edi, dword [ebx + 0x30]
mov eax, ebp
cdq
sub eax, edx
mov dword [esp + 0x34], esp
sar eax, 1
sub esp, 8
add edi, eax
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], esi
lea eax, [esp + 0xe8]
mov dword [esp + 0x3c], esp
push eax
call fcn.00567fa0
mov ebp, dword [esp + 0x124]
mov esi, eax
xor edi, edi
jmp 0x55bdb2
xor esi, esi
lea edx, [esi + 0x2b0]
lea ecx, [ebx + 0x8c]
push edx
lea eax, [esp + 0x78]
mov dword [esi + 0x2b4], ecx
mov ecx, dword [esp + 0x34]
push eax
mov byte [esp + 0x120], 3
call fcn.004561b0
mov ecx, dword [ebx + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push esi
call eax
mov eax, dword [esp + 0x14]
add dword [eax], 0xb
mov ecx, dword [ebx + 0xf4]
cmp ecx, edi
je 0x55be0b
mov eax, dword [ebx + 0xf8]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x120], eax
jb 0x55be10
call fcn.0056999e
mov ecx, dword [ebx + 0xf4]
add ecx, dword [esp + 0x6c]
mov dword [esp + 0x74], ecx
mov ecx, dword [ebx + 0x104]
cmp ecx, edi
je 0x55be37
mov eax, dword [ebx + 0x108]
sub eax, ecx
sar eax, 4
cmp ebp, eax
jb 0x55be3c
call fcn.0056999e
mov ecx, dword [ebx + 0xdc]
shl ebp, 4
add ebp, dword [ebx + 0x104]
cmp ecx, edi
mov dword [esp + 0x78], ebp
jne 0x55be57
xor eax, eax
jmp 0x55be62
mov eax, dword [ebx + 0xe0]
sub eax, ecx
sar eax, 4
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x34], edi
call fcn.005279b0
mov ecx, dword [ebx + 0xdc]
cmp ecx, edi
mov byte [esp + 0x118], 0xd
jne 0x55be8b
xor eax, eax
jmp 0x55be96
mov eax, dword [ebx + 0xe0]
sub eax, ecx
sar eax, 4
lea ecx, [esp + 0x2c]
push ecx
push eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x34], edi
call fcn.005279b0
mov dword [esp + 0x30], edi
lea ecx, [ecx]
mov ebp, dword [esp + 0x70]
mov bl, 1
mov ecx, ebp
mov byte [esp + 0x1b], bl
xor edi, edi
call fcn.00526810
test eax, eax
jle 0x55c0c4
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x38]
sub eax, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], eax
cmp dword [esp + 0x30], 0
mov ecx, dword [ebp + 0xdc]
jne 0x55bf31
test ecx, ecx
je 0x55bf02
mov eax, dword [ebp + 0xe0]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x120], eax
jb 0x55bf07
call fcn.0056999e
mov esi, dword [ebp + 0xdc]
add esi, dword [esp + 0x6c]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x55bf24
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x55bf29
call fcn.0056999e
mov edx, dword [esi + 4]
mov esi, dword [edx + edi*4]
jmp 0x55bf7d
test ecx, ecx
je 0x55bf44
mov eax, dword [ebp + 0xe0]
sub eax, ecx
sar eax, 4
cmp edi, eax
jb 0x55bf49
call fcn.0056999e
mov esi, dword [ebp + 0xdc]
add esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x55bf6b
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x124], eax
jb 0x55bf70
call fcn.0056999e
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x124]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x55bf92
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x55bf97
call fcn.0056999e
cmp dword [esp + 0x30], 0
mov edx, dword [esp + 0x28]
mov dword [edx + ebx], esi
mov ecx, dword [ebp + 0x140]
jne 0x55bff2
test ecx, ecx
je 0x55bfc3
mov eax, dword [ebp + 0x144]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x120], eax
jb 0x55bfc8
call fcn.0056999e
mov esi, dword [ebp + 0x140]
add esi, dword [esp + 0x6c]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x55bfe5
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x55bfea
call fcn.0056999e
mov eax, dword [esi + 4]
mov esi, dword [eax + edi*4]
jmp 0x55c03e
test ecx, ecx
je 0x55c005
mov eax, dword [ebp + 0x144]
sub eax, ecx
sar eax, 4
cmp edi, eax
jb 0x55c00a
call fcn.0056999e
mov esi, dword [ebp + 0x140]
add esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x55c02c
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x124], eax
jb 0x55c031
call fcn.0056999e
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x124]
mov esi, dword [ecx + edx*4]
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x55c053
mov eax, dword [esp + 0x58]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x55c05c
call fcn.0056999e
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x38]
test edx, edx
mov dword [ebx], esi
je 0x55c073
mov eax, dword [esp + 0x3c]
sub eax, edx
sar eax, 2
cmp edi, eax
jb 0x55c07c
call fcn.0056999e
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x28]
cmp dword [eax + ebx], 0
je 0x55c0a6
test ecx, ecx
je 0x55c097
mov eax, dword [esp + 0x58]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x55c09c
call fcn.0056999e
cmp dword [ebx], 1
sete cl
and byte [esp + 0x1b], cl
add dword [esp + 0x14], 0x10
mov ecx, ebp
add edi, 1
add ebx, 4
call fcn.00526810
cmp edi, eax
jl 0x55bedd
mov bl, byte [esp + 0x1b]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + edx*4 + 0x74]
xor esi, esi
mov edi, edi
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x55c104
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jae 0x55c104
test ecx, ecx
je 0x55c0f3
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x55c0f8
call fcn.0056999e
mov eax, dword [edi + 4]
mov byte [eax + esi*8 + 4], bl
add esi, 1
jmp 0x55c0d0
test bl, bl
jne 0x55c50a
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
or ebx, 0xffffffff
xor ebp, ebp
mov eax, ecx
sub eax, edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], eax
test ecx, ecx
mov dword [esp + 0x14], ebp
je 0x55c323
mov esi, dword [esp + 0x3c]
sub esi, ecx
sar esi, 2
cmp ebp, esi
jae 0x55c2bb
test edx, edx
je 0x55c15b
mov eax, dword [esp + 0x58]
sub eax, edx
sar eax, 2
cmp ebp, eax
jb 0x55c160
call fcn.0056999e
mov ecx, dword [esp + 0x1c]
cmp dword [ecx], 0
je 0x55c2b3
cmp ebp, esi
jb 0x55c176
call fcn.0056999e
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
cmp dword [edx + eax], 0
je 0x55c23c
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x55c19d
mov eax, dword [esp + 0x58]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x55c1a2
call fcn.0056999e
mov ecx, dword [esp + 0x1c]
cmp dword [ecx], 1
jne 0x55c23c
test ebp, ebp
je 0x55c216
lea ebx, [ebp - 1]
cmp ebx, esi
jb 0x55c1bf
call fcn.0056999e
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
cmp dword [eax + edx - 4], 0
je 0x55c216
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x55c1e3
mov eax, dword [esp + 0x58]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x55c1e8
call fcn.0056999e
mov ecx, dword [esp + 0x1c]
cmp dword [ecx - 4], 1
jne 0x55c216
add dword [esp + 0x20], 1
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
xor eax, eax
add dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x2c]
add ebp, 1
add dword [esp + 0x1c], 4
jmp 0x55c12d
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
mov eax, 1
add dword [esp + 0x2c], eax
add dword [esp + 0x20], eax
mov ebx, dword [esp + 0x2c]
add ebp, 1
add dword [esp + 0x1c], 4
jmp 0x55c12d
cmp dword [esp + 0x20], 0
je 0x55c28e
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x55c256
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x55c25b
call fcn.0056999e
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [edx + ebx*8]
jne 0x55c2a3
mov ecx, edx
test ecx, ecx
je 0x55c279
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x55c27e
call fcn.0056999e
mov eax, dword [edi + 4]
mov byte [eax + ebx*8 + 4], 1
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
add ebp, 1
add dword [esp + 0x1c], 4
jmp 0x55c12d
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jne 0x55c318
cmp dword [esp + 0x20], 0
je 0x55c318
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x55c2e2
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x55c2e7
call fcn.0056999e
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x20]
cmp edx, dword [ecx + ebx*8]
jne 0x55c310
test ecx, ecx
je 0x55c303
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x55c308
call fcn.0056999e
mov eax, dword [edi + 4]
mov byte [eax + ebx*8 + 4], 1
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 4]
test eax, eax
jne 0x55c327
xor ebx, ebx
jmp 0x55c32f
xor eax, eax
jmp 0x55c2c4
mov ebx, dword [edi + 8]
sub ebx, eax
sar ebx, 3
test ecx, ecx
mov dword [esp + 0x20], 0
jne 0x55c33f
xor eax, eax
jmp 0x55c348
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
lea esi, [eax - 1]
cmp esi, dword [esp + 0x14]
jl 0x55c4b5
lea ecx, [esi + 1]
mov dword [esp + 0x1c], ecx
lea ebp, [edx + esi*4]
jmp 0x55c365
mov edx, dword [esp + 0x54]
test edx, edx
je 0x55c376
mov eax, dword [esp + 0x58]
sub eax, edx
sar eax, 2
cmp esi, eax
jb 0x55c37b
call fcn.0056999e
cmp dword [ebp], 0
je 0x55c4b5
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x55c39a
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x55c39f
call fcn.0056999e
mov edx, dword [esp + 0x28]
cmp dword [edx + ebp], 0
je 0x55c446
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x55c3c2
mov eax, dword [esp + 0x58]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x55c3c7
call fcn.0056999e
cmp dword [ebp], 1
jne 0x55c446
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x55c3d9
xor eax, eax
jmp 0x55c3e2
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
add eax, 0xffffffff
cmp esi, eax
je 0x55c439
test ecx, ecx
je 0x55c3fc
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x1c], eax
jb 0x55c401
call fcn.0056999e
mov eax, dword [esp + 0x28]
cmp dword [eax + ebp + 4], 0
je 0x55c439
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x55c423
mov eax, dword [esp + 0x58]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x1c], eax
jb 0x55c428
call fcn.0056999e
cmp dword [ebp + 4], 1
jne 0x55c439
xor eax, eax
sub ebx, eax
add dword [esp + 0x20], 1
jmp 0x55c496
mov eax, 1
sub ebx, eax
add dword [esp + 0x20], eax
jmp 0x55c496
cmp dword [esp + 0x20], 0
je 0x55c496
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x55c460
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x55c465
call fcn.0056999e
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x20]
cmp edx, dword [ecx + ebx*8]
jne 0x55c4ad
test ecx, ecx
je 0x55c481
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x55c486
call fcn.0056999e
mov eax, dword [edi + 4]
mov byte [eax + ebx*8 + 4], 1
mov dword [esp + 0x20], 0
sub dword [esp + 0x1c], 1
sub esi, 1
sub ebp, 4
cmp esi, dword [esp + 0x14]
jge 0x55c361
jmp 0x55c4b5
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x14]
add ecx, 0xffffffff
cmp esi, ecx
jne 0x55c50a
cmp dword [esp + 0x20], 0
je 0x55c50a
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x55c4da
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x55c4df
call fcn.0056999e
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x20]
cmp eax, dword [edx + ebx*8]
jne 0x55c50a
mov ecx, edx
test ecx, ecx
je 0x55c4fd
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x55c502
call fcn.0056999e
mov ecx, dword [edi + 4]
mov byte [ecx + ebx*8 + 4], 1
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, 2
mov dword [esp + 0x30], eax
jl 0x55beb0
cmp dword [esp + 0x54], 0
je 0x55c532
mov edx, dword [esp + 0x54]
push edx
call fcn.00569095
add esp, 4
cmp dword [esp + 0x38], 0
je 0x55c546
mov eax, dword [esp + 0x38]
push eax
call fcn.00569095
add esp, 4
cmp dword [esp + 0xec], 0x10
jb 0x55c560
mov ecx, dword [esp + 0xd8]
push ecx
call fcn.00569095
add esp, 4
cmp dword [esp + 0xd0], 0x10
mov dword [esp + 0xec], 0xf
mov dword [esp + 0xe8], 0
mov byte [esp + 0xd8], 0
jb 0x55c598
mov edx, dword [esp + 0xbc]
push edx
call fcn.00569095
add esp, 4
cmp dword [esp + 0xb4], 0x10
mov dword [esp + 0xd0], 0xf
mov dword [esp + 0xcc], 0
mov byte [esp + 0xbc], 0
jb 0x55c5d0
mov eax, dword [esp + 0xa0]
push eax
call fcn.00569095
add esp, 4
cmp dword [esp + 0x108], 0x10
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb0], 0
mov byte [esp + 0xa0], 0
jb 0x55c6bb
mov ecx, dword [esp + 0xf4]
push ecx
jmp 0x55c6b3
mov ebx, 0x10
cmp dword [esp + 0xec], ebx
jb 0x55c627
mov edx, dword [esp + 0xd8]
push edx
call fcn.00569095
add esp, 4
xor esi, esi
cmp dword [esp + 0xd0], ebx
mov edi, 0xf
mov dword [esp + 0xec], edi
mov dword [esp + 0xe8], esi
mov byte [esp + 0xd8], 0
jb 0x55c65d
mov eax, dword [esp + 0xbc]
push eax
call fcn.00569095
add esp, 4
cmp dword [esp + 0xb4], ebx
mov dword [esp + 0xd0], edi
mov dword [esp + 0xcc], esi
mov byte [esp + 0xbc], 0
jb 0x55c68c
mov ecx, dword [esp + 0xa0]
push ecx
call fcn.00569095
add esp, 4
cmp dword [esp + 0x108], ebx
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], esi
mov byte [esp + 0xa0], 0
jb 0x55c6bb
mov edx, dword [esp + 0xf4]
push edx
call fcn.00569095
add esp, 4
mov ecx, dword [esp + 0x110]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf8]
xor ecx, esp
call fcn.005697e2
add esp, 0x108
ret 0xc