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

Disassembly:
push 0xffffffffffffffff
push 0x5bc866
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x8c
mov eax, dword [ecx]
push edi
xor edi, edi
mov dword [esp + 0x34], ecx
cmp eax, edi
jne 0x55ef2f
xor eax, eax
jmp 0x55fd81
push edi
push edi
lea ecx, [esp + 0xc]
call fcn.00560000
mov dword [esp + 4], 0x624e84
mov dword [esp + 0x10], edi
mov dword [esp + 8], edi
mov al, byte [0x78e560]
mov dword [esp + 0x98], edi
test al, 1
jne 0x55efa2
or al, 1
mov ecx, 0x78e580
mov byte [0x78e560], al
call fcn.0055fe80
push str.___:____d_.__
lea ecx, [esp + 0x68]
call fcn.0055ea20
mov eax, dword [eax + 8]
push edi
push eax
push str.___:____d_.__
mov ecx, 0x78e580
mov byte [esp + 0xa4], 2
call fcn.0055eaf0
push 0x55ff90
call fcn.0058cf8b
add esp, 4
push ebp
push esi
lea ecx, [esp + 0x88]
call fcn.0055ed50
mov ebp, dword [esp + 0xc4]
mov byte [esp + 0xa0], 3
cmp ebp, edi
jne 0x55efca
lea ebp, [esp + 0x88]
mov ecx, dword [0x78e580]
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0xb4]
cmp ecx, edi
jne 0x55efe8
mov dword [esp + 0x38], edi
jmp 0x55f052
cmp eax, edi
jne 0x55f019
push 0x4c
call fcn.005a9d95
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, edi
mov byte [esp + 0xa0], 4
je 0x55f00f
mov ecx, eax
call fcn.0055ffa0
jmp 0x55f011
xor eax, eax
mov byte [esp + 0xa0], 3
mov ecx, dword [esp + 0xb0]
mov dword [eax + 0x3c], edi
mov dword [eax + 0x38], 0xffffffff
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], esi
mov dword [eax + 0x40], 0x64
test byte [0x78e584], 0x10
je 0x55f048
mov dword [eax + 0x34], esi
mov dword [eax + 0x30], esi
jmp 0x55f04e
mov dword [eax + 0x34], edi
mov dword [eax + 0x30], edi
mov dword [esp + 0x38], eax
push ebx
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x7c]
push edx
push eax
mov ecx, 0x78e580
call fcn.00560800
mov esi, eax
push edi
mov ecx, ebp
mov byte [esp + 0xa8], 5
call fcn.0055ecf0
mov dword [ebp + 8], edi
mov eax, dword [esi + 8]
cmp eax, edi
jle 0x55f0a1
mov esi, dword [esi + 4]
cmp esi, edi
mov ecx, esi
jne 0x55f097
mov ecx, 0x624e8c
push edi
push eax
push ecx
mov ecx, ebp
call fcn.00560be0
push edi
push edi
mov ecx, ebp
call fcn.0055fe60
lea ecx, [esp + 0x7c]
mov esi, eax
mov byte [esp + 0xa4], 3
call fcn.00568bd0
cmp esi, edi
je 0x55f5f5
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.0055fe60
mov esi, eax
sub esi, ebx
cmp esi, edi
jle 0x55f16c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x55f112
lea edi, [eax + eax]
cmp edi, 8
jge 0x55f0f5
mov edi, 8
mov edx, dword [esp + 0x14]
lea ecx, [edi*4]
push ecx
push edx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x55f158
lea edi, [eax + eax]
cmp edi, 8
jge 0x55f13b
mov edi, 8
mov eax, dword [esp + 0x14]
lea edx, [edi*4]
push edx
push eax
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx + edx*4], esi
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.0055fe60
mov esi, eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x24], esi
mov ebx, 2
lea edi, [eax + esi*2 + 2]
xor eax, eax
mov ax, word [edi]
add eax, 0xffffffdc
cmp eax, 0x57
ja case.0x55f1a6.39
xor ecx, ecx
mov cl, byte [eax + 0x55fdac]
jmp dword [ecx*4 + 0x55fd9c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x55f1e3
lea edi, [eax + eax]
cmp edi, 8
jge 0x55f1c6
mov edi, 8
mov eax, dword [esp + 0x14]
lea edx, [edi*4]
push edx
push eax
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx + edx*4], esi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x55f53a
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f51d
jmp 0x55f518
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x55f24a
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f22d
mov esi, 8
mov edx, dword [esp + 0x14]
lea ecx, [esi*4]
push ecx
push edx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
xor esi, esi
mov dword [eax + ecx*4], 0xffffffff
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x18], ecx
mov si, word [edi]
cmp ecx, eax
jl 0x55f5ce
lea edi, [eax + eax]
cmp edi, 8
jge 0x55f5b1
jmp 0x55f5ac
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.0055fe60
push 0xffffffffffffffff
push 3
mov ecx, ebp
mov esi, eax
call fcn.0055fe60
mov ecx, dword [esp + 0x24]
mov ebx, eax
mov eax, dword [esp + 0xb4]
sub ebx, esi
mov dword [esp + 0x70], 0x624e7c
lea edx, [eax + ecx*2 + 4]
lea eax, [ebx - 3]
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
mov edi, dword [esp + 0x40]
xor esi, esi
mov byte [esp + 0xa4], 6
mov eax, dword [edi + 0x4c]
test eax, eax
jle 0x55f2ff
mov edx, dword [edi + 0x48]
lea ecx, [esp + 0x70]
push ecx
mov eax, dword [edx + esi*4]
mov ecx, dword [eax + 8]
mov ecx, dword [ecx]
add ecx, 0xc
call fcn.00560040
test eax, eax
je 0x55f3b5
mov eax, dword [edi + 0x4c]
inc esi
cmp esi, eax
jl 0x55f2d7
mov esi, 0xfffffffd
test esi, esi
mov byte [esp + 0xa4], 3
mov dword [esp + 0x70], 0x624e7c
jle 0x55f3c8
cmp esi, dword [edi + 8]
jg 0x55f3c8
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x55f35b
lea edi, [eax + eax]
cmp edi, 8
jge 0x55f33e
mov edi, 8
mov ecx, dword [esp + 0x14]
lea eax, [edi*4]
push eax
push ecx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], 0xfffffffe
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x55f3a5
lea edi, [eax + eax]
cmp edi, 8
jge 0x55f388
mov edi, 8
mov edx, dword [esp + 0x14]
lea ecx, [edi*4]
push ecx
push edx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], esi
jmp 0x55f5d9
mov edx, dword [edi + 0x48]
mov eax, dword [edx + esi*4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov esi, dword [edx + 4]
jmp 0x55f304
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x55f3fe
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f3e1
mov esi, 8
mov eax, dword [esp + 0x14]
lea edx, [esi*4]
push edx
push eax
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x55f448
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f42b
mov esi, 8
mov edx, dword [esp + 0x14]
lea ecx, [esi*4]
push ecx
push edx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], ebx
jmp 0x55f5d9
xor esi, esi
mov ebx, 1
mov ax, word [edi]
cmp ax, 0x30
jb 0x55f483
cmp ax, 0x39
ja 0x55f483
and eax, 0xffff
lea edx, [esi + esi*4]
inc ebx
add edi, 2
cmp ebx, 3
lea esi, [eax + edx*2 - 0x30]
jle 0x55f45f
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 8]
cmp esi, ecx
jle 0x55f4b1
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
dec ebx
mov esi, edx
cmp esi, ecx
jg 0x55f48e
test esi, esi
jne 0x55f4b1
mov ebx, 1
jmp 0x55f4ba
cmp ebx, 1
jne 0x55f54e
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x55f4f0
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f4d3
mov esi, 8
mov edx, dword [esp + 0x14]
lea ecx, [esi*4]
push ecx
push edx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x55f53a
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f51d
mov esi, 8
mov ecx, dword [esp + 0x14]
lea eax, [esi*4]
push eax
push ecx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], 1
jmp 0x55f5d9
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x55f584
lea edi, [eax + eax]
cmp edi, 8
jge 0x55f567
mov edi, 8
mov edx, dword [esp + 0x14]
lea ecx, [edi*4]
push ecx
push edx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xfffffffe
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x55f5ce
lea edi, [eax + eax]
cmp edi, 8
jge 0x55f5b1
mov edi, 8
mov eax, dword [esp + 0x14]
lea edx, [edi*4]
push edx
push eax
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx + edx*4], esi
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
add eax, ebx
xor edi, edi
mov dword [esp + 0x24], eax
mov ebx, eax
jmp 0x55f059
mov ecx, dword [esp + 0xb8]
cmp ebx, ecx
jge 0x55f6a4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp edx, eax
jl 0x55f641
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f61d
mov esi, 8
mov ecx, dword [esp + 0x14]
lea eax, [esi*4]
push eax
push ecx
call fcn.0058dffb
mov ecx, dword [esp + 0xc0]
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], ebx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc edx
cmp edx, eax
mov dword [esp + 0x18], edx
jl 0x55f68e
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f66a
mov esi, 8
mov edx, dword [esp + 0x14]
lea ecx, [esi*4]
push ecx
push edx
call fcn.0058dffb
mov ecx, dword [esp + 0xc0]
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub ecx, ebx
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
and eax, 0x10
mov dword [esp + 0x44], eax
je 0x55f6c9
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], 0xfffffffe
add ecx, 0xfffffffe
mov dword [esp + 0x58], ecx
jmp 0x55f6d5
mov edx, dword [esp + 0x18]
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], edx
mov ebx, dword [esp + 0x44]
lea ecx, [esp + 0x2c]
mov eax, ebx
mov esi, ebx
neg eax
sbb eax, eax
and al, 0xfc
add eax, 2
neg esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb0]
sbb esi, esi
and esi, eax
neg ebx
sbb ebx, ebx
xor edi, edi
not ebx
and ebx, eax
push edi
push edi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x30], edi
call fcn.00561060
mov dword [esp + 0x2c], 0x624e88
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0xc0]
mov byte [esp + 0xa4], 7
cmp dword [ecx], 0
jne 0x55f751
mov dword [esp + 0x3c], 0
jmp 0x55f7f0
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp ecx, edx
jne 0x55f78e
push 0x4c
call fcn.005a9d95
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0xa4], 8
je 0x55f77e
mov ecx, eax
call fcn.0055ffa0
jmp 0x55f780
xor eax, eax
mov ebx, dword [esp + 0x5c]
mov byte [esp + 0xa4], 7
xor edx, edx
mov ecx, dword [esp + 0xac]
cmp edi, edx
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + 0x3c], edx
mov dword [eax + 0x38], 0xffffffff
mov dword [eax + 0x48], ecx
mov dword [eax + 0x40], 0x64
jge 0x55f7d1
mov edi, dword [esp + 0x40]
test byte [edi + 4], 0x10
je 0x55f7c9
mov dword [eax + 0x34], ecx
mov dword [eax + 0x30], ecx
jmp 0x55f7ec
mov dword [eax + 0x34], edx
mov dword [eax + 0x30], edx
jmp 0x55f7ec
cmp edi, ecx
jle 0x55f7e6
mov edx, dword [esp + 0x40]
mov edi, dword [edx + 4]
not edi
shr edi, 4
and edi, 1
add edi, ecx
mov dword [eax + 0x34], edi
mov dword [eax + 0x30], edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc4]
mov edi, esi
mov dword [esp + 0x48], 0
test eax, eax
jl 0x55f80f
cmp dword [esp + 0x48], eax
jge 0x55fb76
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x7c]
push eax
push ecx
mov ecx, dword [esp + 0x48]
call fcn.00560800
mov esi, eax
push 0
mov ecx, ebp
mov byte [esp + 0xa8], 9
call fcn.0055ecf0
mov dword [ebp + 8], 0
mov eax, dword [esi + 8]
test eax, eax
jle 0x55f85c
mov esi, dword [esi + 4]
test esi, esi
mov ecx, esi
jne 0x55f851
mov ecx, 0x624e8c
push 0
push eax
push ecx
mov ecx, ebp
call fcn.00560be0
lea ecx, [esp + 0x7c]
mov byte [esp + 0xa4], 7
call fcn.00568bd0
push 0
push 0
mov ecx, ebp
call fcn.0055fe60
test eax, eax
je 0x55fb76
mov eax, dword [esp + 0x44]
push 0xffffffffffffffff
test eax, eax
je 0x55f956
push 3
mov ecx, ebp
call fcn.0055fe60
sub edi, eax
mov ebx, edi
je 0x55f950
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.0055fe60
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0x34]
lea edi, [edx + eax*2]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jl 0x55f8ec
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f8cf
mov esi, 8
mov ecx, dword [esp + 0x30]
lea eax, [esi*4]
push eax
push ecx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], esi
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [edx + eax*4], edi
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
inc ecx
cmp ecx, eax
mov dword [esp + 0x34], ecx
jl 0x55f932
lea esi, [eax + eax]
cmp esi, 8
jge 0x55f915
mov esi, 8
mov edx, dword [esp + 0x30]
lea ecx, [esi*4]
push ecx
push edx
call fcn.0058dffb
add esp, 8
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
inc ecx
sub eax, ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
push 0xffffffffffffffff
push 2
jmp 0x55f98b
push 2
mov ecx, ebp
call fcn.0055fe60
mov esi, eax
sub esi, edi
je 0x55f987
mov edx, dword [esp + 0xac]
lea ecx, [esp + 0x2c]
lea eax, [edx + edi*2]
push eax
call fcn.00569020
push esi
lea ecx, [esp + 0x30]
call fcn.00569020
add dword [esp + 0x28], esi
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.0055fe60
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x54]
mov edx, eax
cmp eax, ecx
mov dword [esp + 0x50], edx
je 0x55fb59
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
mov esi, dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0xb4]
cmp eax, 0xffffffff
lea edi, [edx + eax*2]
jne 0x55fae2
mov eax, esi
and eax, 0xffff
add eax, 0xffffffda
cmp eax, 0x3a
ja case.0x55f9ed.43
xor ecx, ecx
mov cl, byte [eax + 0x55fe1c]
jmp dword [ecx*4 + 0x55fe04]
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.0055fe60
mov edx, dword [esp + 0xac]
push 0xffffffffffffffff
push 2
mov ecx, ebp
lea edi, [edx + eax*2]
call fcn.0055fe60
push 0xffffffffffffffff
push 3
mov ecx, ebp
mov ebx, eax
call fcn.0055fe60
mov esi, eax
sub esi, ebx
jmp case.0x55f9ed.43
mov edi, dword [esp + 0xac]
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.0055fe60
jmp 0x55fb15
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.0055fe60
mov ecx, dword [esp + 0xac]
push 0xffffffffffffffff
push 3
lea edi, [ecx + eax*2]
mov ecx, ebp
call fcn.0055fe60
mov esi, dword [esp + 0xb0]
sub esi, eax
jmp case.0x55f9ed.43
push 0
push 1
mov ecx, ebp
call fcn.0055fe60
mov esi, eax
test esi, esi
jl 0x55fa9a
lea edi, [esi + esi + 2]
push 0xffffffffffffffff
push edi
mov ecx, ebp
call fcn.0055fe60
test eax, eax
jge 0x55fa9a
dec esi
sub edi, 2
test esi, esi
jge 0x55fa84
lea ebx, [esi + esi + 2]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.0055fe60
mov edx, dword [esp + 0xac]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
lea edi, [edx + eax*2]
call fcn.0055fe60
mov ebx, eax
lea eax, [esi + esi + 3]
push 0xffffffffffffffff
push eax
mov ecx, ebp
call fcn.0055fe60
mov esi, eax
sub esi, ebx
jmp case.0x55f9ed.43
mov edi, dword [esp + 0xac]
mov esi, dword [esp + 0xb0]
jmp case.0x55f9ed.43
cmp eax, 0xfffffffe
jne case.0x55f9ed.43
lea ebx, [esi + esi + 2]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.0055fe60
mov ecx, dword [esp + 0xac]
push 0xffffffffffffffff
push ebx
lea edi, [ecx + eax*2]
mov ecx, ebp
call fcn.0055fe60
push esi
mov ecx, ebp
mov ebx, eax
call fcn.00560ad0
sub eax, ebx
mov esi, eax
push edi
lea ecx, [esp + 0x30]
call fcn.00569020
push esi
lea ecx, [esp + 0x30]
call fcn.00569020
mov eax, dword [esp + 0x44]
test eax, eax
je 0x55fb35
neg esi
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
add edx, esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x50]
add edx, ecx
cmp edx, eax
mov dword [esp + 0x50], edx
jne 0x55f9b4
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x24]
inc eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc4]
jmp 0x55f801
mov eax, dword [esp + 0x44]
test eax, eax
je 0x55fb9b
cmp ebx, edi
jge 0x55fbbf
mov edx, dword [esp + 0xac]
lea ecx, [esp + 0x2c]
lea eax, [edx + ebx*2]
push eax
call fcn.00569020
sub edi, ebx
push edi
jmp 0x55fbb6
cmp edi, ebx
jge 0x55fbbf
mov ecx, dword [esp + 0xac]
lea edx, [ecx + edi*2]
lea ecx, [esp + 0x2c]
push edx
call fcn.00569020
sub ebx, edi
push ebx
lea ecx, [esp + 0x30]
call fcn.00569020
mov eax, dword [esp + 0xcc]
test eax, eax
jne 0x55fbd7
mov eax, dword [esp + 0x3c]
push eax
call fcn.00560ab0
add esp, 4
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0x34]
xor esi, esi
cmp ecx, esi
mov dword [edi], esi
jle 0x55fc02
mov edx, dword [esp + 0x30]
inc ecx
shr ecx, 1
lea eax, [edx + 4]
mov edx, dword [eax]
mov ebx, dword [edi]
add ebx, edx
add eax, 8
dec ecx
mov dword [edi], ebx
jne 0x55fbf4
lea ecx, [esp + 0x60]
call fcn.005605d0
mov eax, dword [edi]
push esi
push eax
lea ecx, [esp + 0x68]
mov byte [esp + 0xac], 0xa
call fcn.005606a0
push esi
lea ecx, [esp + 0x64]
call fcn.00560b80
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x68], esi
cmp ebx, esi
je 0x55fc60
mov ecx, dword [esp + 0x34]
lea esi, [ecx - 2]
test esi, esi
jl 0x55fc8b
mov eax, dword [esp + 0x30]
push 0
lea ecx, [esp + 0x64]
mov edx, dword [eax + esi*4 + 4]
mov eax, dword [eax + esi*4]
push edx
push eax
call fcn.005605f0
sub esi, 2
jns 0x55fc41
jmp 0x55fc8b
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x55fc8b
mov eax, dword [esp + 0x30]
push 0
mov ecx, dword [eax + esi*4 + 4]
mov edx, dword [eax + esi*4]
push ecx
push edx
lea ecx, [esp + 0x6c]
call fcn.005605f0
mov eax, dword [esp + 0x34]
add esi, 2
cmp esi, eax
jl 0x55fc68
push 0
lea eax, [esp + 0x24]
push 1
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x2c], 0
call fcn.005605f0
mov ecx, dword [edi]
push 3
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ecx
push 1
push edx
mov ecx, ebp
call fcn.00560be0
mov eax, dword [esp + 0x48]
push 0
lea ecx, [esp + 0x24]
push 1
push ecx
mov ecx, ebp
mov dword [esp + 0x2c], eax
call fcn.00560be0
test ebx, ebx
pop ebx
je 0x55fd0b
mov edx, dword [edi]
mov esi, dword [esp + 0x24]
push 0
lea eax, [esp + 0x20]
sub edx, esi
push 1
push eax
mov ecx, ebp
mov dword [esp + 0x28], edx
call fcn.00560be0
mov ecx, dword [edi]
mov esi, dword [esp + 0x48]
sub ecx, esi
push 0
lea edx, [esp + 0x20]
push 1
mov dword [esp + 0x24], ecx
push edx
jmp 0x55fd34
mov eax, dword [esp + 0x48]
push 0
lea ecx, [esp + 0x20]
push 1
push ecx
mov ecx, ebp
mov dword [esp + 0x28], eax
call fcn.00560be0
mov edx, dword [esp + 0x24]
push 0
lea eax, [esp + 0x20]
push 1
mov dword [esp + 0x24], edx
push eax
mov ecx, ebp
call fcn.00560be0
lea ecx, [esp + 0x5c]
call fcn.00560690
lea ecx, [esp + 0x5c]
mov esi, eax
mov byte [esp + 0xa0], 7
call fcn.00560730
lea ecx, [esp + 0x28]
mov byte [esp + 0xa0], 3
call fcn.00560af0
lea ecx, [esp + 0x88]
call fcn.00568bd0
lea ecx, [esp + 0xc]
call fcn.00568bd0
mov eax, esi
pop esi
pop ebp
mov ecx, dword [esp + 0x90]
pop edi
mov dword fs:[0], ecx
add esp, 0x98
ret 0x24