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

Disassembly:
sub esp, 0x68
push ebx
push ebp
push esi
mov esi, eax
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 4]
mov dword [esp + 0x10], eax
push edi
mov eax, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], 1
lea ebp, [esi + 8]
call fcn.005f07d0
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
cmp eax, 7
je 0x5f1838
cmp eax, 8
je 0x5f1a90
cmp eax, 9
je 0x5f1d11
cmp eax, 0xa
jne 0x5f240e
mov ecx, dword [esi + 0x40]
mov edi, dword [esp + 0x14]
mov edx, 1
sub ecx, edi
sub dword [esp + 0x18], edx
js 0x5f182b
mov eax, dword [esi + 0x60]
mov ebx, edi
sub ebx, dword [esi + 0x10c]
and ebx, dword [esi + 0x44]
mov bl, byte [ebx + eax]
mov byte [eax + edi], bl
add edi, edx
sub ecx, edx
mov dword [esp + 0x14], edi
je 0x5f23b9
sub dword [esp + 0x18], edx
jns 0x5f1803
cmp dword [esi + 0xb8], 0
jle 0x5f2351
cmp dword [esi + 0xc4], 0
mov dword [esi], 7
jne 0x5f1876
push esi
call fcn.005efb60
add esp, 4
test eax, eax
jne 0x5f1838
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
pop edi
mov dword [esi + 4], eax
mov dword [esi + 0x34], edx
pop esi
mov dword [esp + 0x14], 2
mov eax, dword [esp + 0x14]
pop ebp
pop ebx
add esp, 0x68
ret
mov ecx, dword [ebp + 8]
mov edx, dword [ebp]
mov eax, dword [ebp + 4]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 0xc]
mov ecx, 0x20
sub ecx, eax
mov dword [esp + 0x64], edx
mov edx, dword [esi + 0x68]
mov dword [esp + 0x5c], eax
cmp ecx, 0xf
jae 0x5f18da
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x5f192c
shr dword [ebp], 8
mov eax, dword [ebp + 8]
movzx ebx, byte [eax]
mov ecx, dword [ebp]
add dword [ebp + 4], 0xfffffff8
inc eax
shl ebx, 0x18
or ebx, ecx
dec edi
mov dword [ebp + 8], eax
mov eax, 0x20
mov dword [ebp], ebx
mov dword [ebp + 0xc], edi
sub eax, dword [ebp + 4]
cmp eax, 0xf
jb 0x5f18a1
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
shr eax, cl
and eax, dword [0x6e289c]
mov edi, eax
and edi, 0xff
mov bl, byte [edx + edi*4]
lea edx, [edx + edi*4]
cmp bl, 8
jbe 0x5f191c
movzx edi, bl
add ecx, 8
mov dword [ebp + 4], ecx
mov ecx, dword [edi*4 + 0x6e2840]
sub edi, 8
shr eax, 8
and ecx, eax
movzx eax, word [edx + 2]
add ecx, eax
lea edx, [edx + ecx*4]
movzx ecx, byte [edx]
add dword [ebp + 4], ecx
movzx eax, word [edx + 2]
mov dword [esp + 0x34], eax
jmp 0x5f1947
lea eax, [esp + 0x34]
push eax
mov edi, ebp
call fcn.005ee290
add esp, 4
test eax, eax
je 0x5f1854
mov eax, dword [esp + 0x34]
mov ebx, dword [eax*8 + 0x6e3150]
mov ecx, dword [eax*8 + 0x6e3154]
mov edx, ebx
shr edx, 0x10
movsx eax, dl
mov edx, dword [esi + 0x74]
mov dword [esi + 0x10c], eax
mov eax, ebx
shr eax, 0x18
mov dword [esi + 0xb4], eax
mov al, byte [eax + edx]
mov dword [esp + 0x54], ecx
movzx edx, bl
movzx ecx, cx
mov dword [esp + 0x50], ebx
mov byte [esi + 0x104], al
mov dword [esp + 0x18], ecx
test edx, edx
je 0x5f19f4
mov eax, 0x20
sub eax, dword [ebp + 4]
cmp eax, edx
jae 0x5f19dc
lea esp, [esp]
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x5f2371
shr dword [ebp], 8
mov eax, dword [ebp + 8]
movzx ebx, byte [eax]
mov ecx, dword [ebp]
add dword [ebp + 4], 0xfffffff8
shl ebx, 0x18
or ebx, ecx
dec edi
inc eax
mov ecx, 0x20
mov dword [ebp], ebx
mov dword [ebp + 0xc], edi
mov dword [ebp + 8], eax
sub ecx, dword [ebp + 4]
cmp ecx, edx
jb 0x5f19a0
mov ebx, dword [esp + 0x50]
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
mov edi, dword [edx*4 + 0x6e2860]
shr eax, cl
and edi, eax
add ecx, edx
mov dword [ebp + 4], ecx
jmp 0x5f19f6
xor edi, edi
movzx edx, bh
mov dword [esp + 0x30], edi
test edx, edx
je 0x5f1a64
mov ecx, 0x20
sub ecx, dword [ebp + 4]
cmp ecx, edx
jae 0x5f1a4c
lea ecx, [ecx]
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x5f2371
shr dword [ebp], 8
mov eax, dword [ebp + 8]
movzx ebx, byte [eax]
mov ecx, dword [ebp]
add dword [ebp + 4], 0xfffffff8
inc eax
shl ebx, 0x18
or ebx, ecx
dec edi
mov dword [ebp + 8], eax
mov eax, 0x20
mov dword [ebp], ebx
mov dword [ebp + 0xc], edi
sub eax, dword [ebp + 4]
cmp eax, edx
jb 0x5f1a10
mov edi, dword [esp + 0x30]
mov ecx, dword [ebp + 4]
mov ebx, dword [ebp]
mov eax, dword [edx*4 + 0x6e2860]
shr ebx, cl
and eax, ebx
add ecx, edx
mov dword [ebp + 4], ecx
jmp 0x5f1a66
xor eax, eax
movzx ecx, word [esp + 0x56]
dec dword [esi + 0xc4]
add ecx, eax
add dword [esp + 0x18], edi
mov dword [esi + 0x108], ecx
je 0x5f1d11
mov edx, dword [esp + 0x18]
sub dword [esi + 0xb8], edx
lea ecx, [ecx]
cmp dword [esi + 0xb0], 0
mov dword [esi], 8
je 0x5f1bae
cmp dword [esi + 0xc0], 0
jne 0x5f1ac2
call fcn.005ef5d0
test eax, eax
je 0x5f1854
cmp dword [esi + 0xb0], 0
je 0x5f1a90
mov edx, dword [esi + 0x100]
mov eax, 0x20
sub eax, dword [ebp + 4]
cmp eax, 0xf
jae 0x5f1b0e
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x5f1b60
shr dword [ebp], 8
mov eax, dword [ebp + 8]
movzx ebx, byte [eax]
mov ecx, dword [ebp]
add dword [ebp + 4], 0xfffffff8
shl ebx, 0x18
or ebx, ecx
dec edi
inc eax
mov ecx, 0x20
mov dword [ebp], ebx
mov dword [ebp + 0xc], edi
mov dword [ebp + 8], eax
sub ecx, dword [ebp + 4]
cmp ecx, 0xf
jb 0x5f1ad5
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
shr eax, cl
and eax, dword [0x6e289c]
mov edi, eax
and edi, 0xff
mov bl, byte [edx + edi*4]
lea edx, [edx + edi*4]
cmp bl, 8
jbe 0x5f1b50
movzx edi, bl
add ecx, 8
mov dword [ebp + 4], ecx
mov ecx, dword [edi*4 + 0x6e2840]
sub edi, 8
shr eax, 8
and ecx, eax
movzx eax, word [edx + 2]
add ecx, eax
lea edx, [edx + ecx*4]
movzx ecx, byte [edx]
add dword [ebp + 4], ecx
movzx edx, word [edx + 2]
mov dword [esp + 0x38], edx
jmp 0x5f1b77
lea eax, [esp + 0x38]
push eax
mov edi, ebp
call fcn.005ee290
add esp, 4
test eax, eax
je 0x5f1854
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x60]
mov dl, byte [esp + 0x38]
mov byte [eax + ecx], dl
dec dword [esi + 0xc0]
mov ecx, 1
add eax, ecx
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x40]
je 0x5f23c1
sub dword [esp + 0x18], ecx
jne 0x5f1aa3
jmp 0x5f1d04
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x60]
lea edi, [edx - 1]
and edi, eax
mov bl, byte [edi + ecx]
add edx, 0xfffffffe
and edx, eax
mov al, byte [edx + ecx]
mov byte [esp + 0x12], al
lea esp, [esp]
cmp dword [esi + 0xc0], 0
jne 0x5f1bf3
call fcn.005ef5d0
test eax, eax
je 0x5f1854
cmp dword [esi + 0xb0], 0
jne 0x5f1a90
movzx ecx, byte [esp + 0x12]
mov eax, dword [esi + 0x6c]
movzx edx, byte [ecx + eax + 0x100]
movzx ecx, bl
movzx eax, byte [ecx + eax]
mov ecx, dword [esi + 0x70]
or edx, eax
movzx edx, byte [edx + ecx]
mov eax, dword [esi + 0x78]
mov edx, dword [eax + edx*4]
mov ecx, 0x20
sub ecx, dword [ebp + 4]
mov byte [esp + 0x12], bl
cmp ecx, 0xf
jae 0x5f1c69
lea ebx, [ebx]
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x5f1cbb
shr dword [ebp], 8
mov eax, dword [ebp + 8]
movzx ebx, byte [eax]
mov ecx, dword [ebp]
add dword [ebp + 4], 0xfffffff8
inc eax
shl ebx, 0x18
or ebx, ecx
dec edi
mov dword [ebp + 8], eax
mov eax, 0x20
mov dword [ebp], ebx
mov dword [ebp + 0xc], edi
sub eax, dword [ebp + 4]
cmp eax, 0xf
jb 0x5f1c30
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
shr eax, cl
and eax, dword [0x6e289c]
mov edi, eax
and edi, 0xff
mov bl, byte [edx + edi*4]
lea edx, [edx + edi*4]
cmp bl, 8
jbe 0x5f1cab
movzx edi, bl
add ecx, 8
mov dword [ebp + 4], ecx
mov ecx, dword [edi*4 + 0x6e2840]
sub edi, 8
shr eax, 8
and ecx, eax
movzx eax, word [edx + 2]
add ecx, eax
lea edx, [edx + ecx*4]
movzx ecx, byte [edx]
add dword [ebp + 4], ecx
movzx ebx, word [edx + 2]
mov dword [esp + 0x3c], ebx
jmp 0x5f1cd6
lea eax, [esp + 0x3c]
push eax
mov edi, ebp
call fcn.005ee290
add esp, 4
test eax, eax
je 0x5f1854
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x60]
mov byte [eax + ecx], bl
dec dword [esi + 0xc0]
mov ecx, 1
add eax, ecx
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x40]
je 0x5f23c1
sub dword [esp + 0x18], ecx
jne 0x5f1bd0
cmp dword [esi + 0xb8], 0
jle 0x5f2351
mov eax, dword [esi + 0x10c]
mov dword [esi], 9
test eax, eax
jl 0x5f1d40
xor edx, edx
test eax, eax
sete dl
dec dword [esi + 0x48]
mov eax, dword [esi + 0x48]
and eax, 3
mov dword [esi + 0xb4], edx
mov eax, dword [esi + eax*4 + 0x4c]
jmp 0x5f1f80
cmp dword [esi + 0xc8], 0
jne 0x5f1d58
mov ebx, esi
call fcn.005f00b0
test eax, eax
je 0x5f1854
movzx ecx, byte [esi + 0x104]
mov edx, dword [esi + 0x98]
mov edx, dword [edx + ecx*4]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp]
mov dword [esp + 0x70], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 4]
mov ecx, 0x20
sub ecx, eax
mov dword [esp + 0x6c], eax
cmp ecx, 0xf
jae 0x5f1dc9
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x5f1e1b
shr dword [ebp], 8
mov eax, dword [ebp + 8]
movzx ebx, byte [eax]
mov ecx, dword [ebp]
add dword [ebp + 4], 0xfffffff8
inc eax
shl ebx, 0x18
or ebx, ecx
dec edi
mov dword [ebp + 8], eax
mov eax, 0x20
mov dword [ebp], ebx
mov dword [ebp + 0xc], edi
sub eax, dword [ebp + 4]
cmp eax, 0xf
jb 0x5f1d90
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
shr eax, cl
and eax, dword [0x6e289c]
mov edi, eax
and edi, 0xff
mov bl, byte [edx + edi*4]
lea edx, [edx + edi*4]
cmp bl, 8
jbe 0x5f1e0b
movzx edi, bl
add ecx, 8
mov dword [ebp + 4], ecx
mov ecx, dword [edi*4 + 0x6e2840]
sub edi, 8
shr eax, 8
and ecx, eax
movzx eax, word [edx + 2]
add ecx, eax
lea edx, [edx + ecx*4]
movzx ecx, byte [edx]
add dword [ebp + 4], ecx
movzx edi, word [edx + 2]
mov dword [esp + 0x40], edi
jmp 0x5f1e36
lea eax, [esp + 0x40]
push eax
mov edi, ebp
call fcn.005ee290
add esp, 4
test eax, eax
je 0x5f1854
mov edi, dword [esp + 0x40]
dec dword [esi + 0xc8]
mov dword [esi + 0xb4], 0
test edi, 0xfffffff0
jne 0x5f1edd
cmp edi, 3
mov dword [esi + 0x10c], edi
jg 0x5f1e8b
mov eax, dword [esi + 0x48]
mov ecx, edi
mov edx, 1
sar edx, cl
mov ecx, eax
sub ecx, edi
dec ecx
and ecx, 3
mov dword [esi + 0xb4], edx
mov ecx, dword [esi + ecx*4 + 0x4c]
sub eax, edx
mov dword [esi + 0x10c], ecx
mov dword [esi + 0x48], eax
jmp 0x5f1f86
cmp edi, 0xa
mov eax, 3
lea ecx, [edi - 0xa]
jge 0x5f1e9d
lea ecx, [edi - 4]
jmp 0x5f1ea2
mov eax, 2
add ecx, ecx
add ecx, ecx
mov edx, 0x605142
sar edx, cl
mov ecx, dword [esi + 0x48]
add ecx, eax
and ecx, 3
mov eax, dword [esi + ecx*4 + 0x4c]
and edx, 0xf
lea eax, [edx + eax - 3]
mov dword [esi + 0x10c], eax
test eax, eax
jg 0x5f1f86
mov dword [esi + 0x10c], 0x7fffffff
jmp 0x5f1f86
movzx edx, byte [edi + esi + 0x270]
test edx, edx
je 0x5f202b
cmp edx, 0x18
ja 0x5f1f56
mov ecx, 0x20
sub ecx, dword [ebp + 4]
cmp ecx, edx
jae 0x5f1f3a
mov edi, edi
cmp dword [ebp + 0xc], 0
je 0x5f2392
shr dword [ebp], 8
mov eax, dword [ebp + 8]
movzx ebx, byte [eax]
mov ecx, dword [ebp]
add dword [ebp + 4], 0xfffffff8
shl ebx, 0x18
or ebx, ecx
mov ecx, dword [ebp + 0xc]
inc eax
dec ecx
mov dword [ebp + 8], eax
mov eax, 0x20
mov dword [ebp], ebx
mov dword [ebp + 0xc], ecx
sub eax, dword [ebp + 4]
cmp eax, edx
jb 0x5f1f00
mov ecx, dword [ebp + 4]
mov ebx, dword [ebp]
mov eax, dword [edx*4 + 0x6e2860]
shr ebx, cl
and eax, ebx
add ecx, edx
mov dword [esp + 0x28], eax
mov dword [ebp + 4], ecx
jmp 0x5f1f71
lea ecx, [esp + 0x28]
push ecx
push edx
push ebp
call fcn.005ed850
add esp, 0xc
test eax, eax
je 0x5f2392
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0xf0]
shl eax, cl
add eax, dword [esi + edi*4 + 0x490]
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x38]
cmp dword [esi + 0x3c], eax
je 0x5f1f9b
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x5f1f98
mov eax, ecx
mov dword [esi + 0x3c], eax
mov edi, dword [esi + 0x10c]
mov ecx, dword [esi + 0x3c]
cmp edi, ecx
mov edx, dword [esi + 0x108]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
jle 0x5f227d
cmp edi, 0x7ffffffc
jg 0x5f23cd
mov eax, edi
sub eax, ecx
lea ebx, [eax - 1]
cmp ebx, dword [esp + 0x2c]
jge 0x5f2036
sub ecx, edi
add ecx, dword [esp + 0x2c]
push edx
mov eax, ecx
mov edi, esi
call fcn.005f0750
add esp, 4
test eax, eax
je 0x5f23da
mov edi, dword [esp + 0x14]
push edi
push esi
call fcn.005f07f0
add edi, eax
add esp, 8
cmp edi, dword [esi + 0x40]
mov dword [esp + 0x14], edi
jl 0x5f2344
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
pop edi
mov dword [esi + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esi], 0xf
mov dword [esi + 0x34], edx
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x5f1f71
lea ecx, [edx - 4]
cmp ecx, 0x1b
ja 0x5f23e7
mov ecx, dword [esi + 0x248]
cmp dword [ecx + 0x7c], 0
je 0x5f2096
mov ecx, dword [esi + 0x44]
mov ebx, dword [esp + 0x14]
mov edi, dword [esi + 0x60]
add ebx, 0xfffffffe
and ebx, ecx
movzx ebx, byte [ebx + edi]
mov edi, dword [esi + 0x6c]
movzx ebx, byte [ebx + edi + 0x100]
mov edi, dword [esp + 0x14]
dec edi
and edi, ecx
mov ecx, dword [esi + 0x60]
movzx edi, byte [edi + ecx]
mov ecx, dword [esi + 0x6c]
movzx ecx, byte [edi + ecx]
mov edi, dword [esi + 0x248]
or ebx, ecx
mov cl, byte [ebx + edi + 0x80]
mov byte [esp + 0x12], cl
jmp 0x5f209b
mov byte [esp + 0x12], 0
movzx ecx, byte [esp + 0x12]
mov ebx, dword [esi + 0x248]
mov edi, dword [ebx + ecx*4 + 0xc4]
mov ecx, dword [ebx + ecx*4 + 0x1c4]
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + edx*4 + 0x20]
dec eax
mov dword [esp + 0x24], ecx
movzx ecx, byte [edi + edx]
mov ebx, eax
mov eax, dword [ecx*4 + 0x6e2860]
and eax, ebx
imul eax, edx
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], edi
mov edi, ebx
sar edi, cl
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0xb4]
add dword [esi + 0x48], ecx
cmp edi, dword [eax + 0xc]
jge 0x5f2107
mov ecx, dword [esp + 0x30]
cmp byte [ecx + edx], 0
jne 0x5f21e7
mov eax, dword [esi + 0x248]
cmp byte [eax + 0xc0], 1
jbe 0x5f21e7
mov ecx, dword [esp + 0x48]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x20]
and eax, 0xfffffffe
imul eax, dword [ecx + 0xc]
sub ebx, eax
mov eax, dword [esi + 0x248]
mov dword [esp + 0x44], ebx
xor bl, bl
mov byte [esp + 0x13], bl
cmp byte [eax + 0xc0], bl
jbe 0x5f21e7
mov edi, edi
mov eax, dword [esi + 0x248]
movzx ecx, bl
mov eax, dword [eax + ecx*4 + 0xc4]
mov dword [esp + 0x4c], eax
cmp bl, byte [esp + 0x12]
je 0x5f21a9
mov al, byte [eax + edx]
test al, al
je 0x5f21a9
mov ebx, dword [esi + 0x248]
mov ecx, dword [ebx + ecx*4 + 0x1c4]
mov dword [esp + 0x48], ecx
mov ebx, dword [esp + 0x48]
movzx ecx, al
mov eax, 1
shl eax, cl
and eax, 0xfffffffe
imul eax, dword [ebx + 0xc]
mov ebx, dword [esp + 0x44]
cmp ebx, eax
jl 0x5f21bf
sub ebx, eax
mov dword [esp + 0x44], ebx
mov bl, byte [esp + 0x13]
mov eax, dword [esi + 0x248]
inc bl
mov byte [esp + 0x13], bl
cmp bl, byte [eax + 0xc0]
jb 0x5f2150
jmp 0x5f21e7
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edi
mov edi, ebx
sar edi, cl
mov ecx, dword [ecx*4 + 0x6e2860]
and ecx, ebx
imul ecx, edx
add ecx, dword [eax + edx*4 + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x30]
cmp byte [eax + edx], 0
je 0x5f23e7
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x5f23f4
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx + 0xc]
jge 0x5f2401
mov ebx, dword [esp + 0x24]
movsx ecx, word [ecx + 0x18]
add eax, ebx
mov ebx, edx
cmp edi, ecx
jne 0x5f2234
push edx
mov edx, dword [esi + 0x60]
add edx, dword [esp + 0x18]
push eax
push edx
call fcn.00621de0
add esp, 0xc
jmp 0x5f225f
mov ecx, dword [esp + 0x20]
push edi
push ecx
push edx
mov edx, dword [esi + 0x60]
add edx, dword [esp + 0x20]
push eax
push edx
call fcn.005f3f30
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x5f225f
cmp dword [esi + 0x10c], 0x78
jle 0x5f2401
mov eax, dword [esp + 0x14]
sub dword [esi + 0xb8], ebx
add eax, ebx
cmp eax, dword [esi + 0x40]
mov dword [esp + 0x14], eax
jge 0x5f200b
jmp 0x5f2344
mov ecx, dword [esi + 0x60]
mov eax, ebx
sub eax, edi
and eax, dword [esi + 0x44]
mov dword [esp + 0x24], ecx
add ecx, ebx
add ebx, edx
mov dword [esp + 0x30], ebx
lea ebx, [eax + edx]
mov dword [esp + 0x48], ebx
mov ebx, dword [esi + 0x48]
and ebx, 3
mov dword [esi + ebx*4 + 0x4c], edi
inc dword [esi + 0x48]
sub dword [esi + 0xb8], edx
mov edi, dword [esp + 0x24]
mov ebx, dword [edi + eax]
mov dword [ecx], ebx
mov ebx, dword [edi + eax + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [edi + eax + 8]
mov dword [ecx + 8], ebx
mov edi, dword [edi + eax + 0xc]
mov dword [ecx + 0xc], edi
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x48], edi
jle 0x5f22df
cmp dword [esp + 0x30], eax
jg 0x5f17ef
mov edi, dword [esi + 0x40]
cmp dword [esp + 0x30], edi
jge 0x5f17ef
cmp dword [esp + 0x48], edi
jge 0x5f17ef
cmp edx, 0x10
mov edi, dword [esp + 0x30]
mov dword [esp + 0x14], edi
jle 0x5f2344
cmp edx, 0x20
jle 0x5f2323
add edx, 0xfffffff0
push edx
mov edx, dword [esp + 0x28]
lea eax, [edx + eax + 0x10]
push eax
add ecx, 0x10
push ecx
call fcn.00621de0
add esp, 0xc
jmp 0x5f2344
mov edx, dword [esp + 0x24]
mov edi, dword [edx + eax + 0x14]
mov ebx, dword [edx + eax + 0x18]
lea eax, [edx + eax + 0x10]
mov edx, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x1c], eax
cmp dword [esi + 0xb8], 0
jg 0x5f1838
mov dword [esi], 0xe
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
pop edi
mov dword [esi + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x34], edx
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [ebp], eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], eax
jmp 0x5f1854
inc dword [esi + 0xc8]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x74]
mov dword [ebp + 4], edx
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ecx
jmp 0x5f1854
mov dword [esi], 0x10
jmp 0x5f2357
sub dword [esp + 0x18], ecx
mov dword [esi], 0xd
jmp 0x5f2357
pop edi
pop esi
pop ebp
mov eax, 0xfffffff0
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffee
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffed
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffe1
pop ebx
add esp, 0x68
ret