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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
cmp dword [esi + 0x14], 0x1c
lea ebx, [esi + 8]
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 4]
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edx
jb 0x5fb088
push ebx
call fcn.005fd5f0
mov eax, dword [esi]
add esp, 4
cmp eax, 7
je 0x5fa4ac
cmp eax, 8
je 0x5fa7ff
cmp eax, 9
je 0x5fab2d
cmp eax, 0xa
je 0x5fafa2
pop edi
pop esi
mov eax, 0xffffffe1
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x14], 0x1c
jb 0x5fb07f
cmp dword [esi + 0xc4], 0
jne 0x5fa4ca
push esi
call fcn.005f9090
add esp, 4
jmp 0x5fa4ac
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x68]
mov edx, dword [ebx]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], eax
mov dword [ebp + 8], edx
cmp ecx, 0x10
jb 0x5fa514
xor ecx, 0x10
shr edx, 0x10
mov dword [esi + 0xc], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebx], edx
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0x14], 0xfffffffe
mov edx, eax
mov dword [ebp + 8], eax
lea eax, [ecx + 2]
mov dword [ebx], edx
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x10], eax
mov dword [ebp + 8], edx
mov edi, dword [ebp - 0x1c]
shr edx, cl
movzx eax, dl
lea eax, [edi + eax*4]
mov dword [ebp - 0x18], eax
mov al, byte [eax]
cmp al, 8
jbe 0x5fa554
add ecx, 8
movzx eax, al
mov dword [esi + 0xc], ecx
mov dword [ebp - 0x14], ecx
shr edx, 8
mov ecx, dword [eax*4 + 0x669d60]
and ecx, edx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 2]
add ecx, eax
mov al, byte [edx + ecx*4]
lea edx, [edx + ecx*4]
mov ecx, dword [ebp - 0x14]
jmp 0x5fa557
mov edx, dword [ebp - 0x18]
movzx eax, al
add eax, ecx
mov dword [esi + 0xc], eax
movzx eax, word [edx + 2]
mov edx, dword [eax*8 + 0x66846c]
mov ecx, dword [eax*8 + 0x668468]
mov eax, edx
mov dword [ebp - 0x18], ecx
shrd ecx, eax, 0x10
mov dword [ebp - 0x20], edx
movsx eax, cl
mov ecx, dword [ebp - 0x18]
mov dword [esi + 0x10c], eax
mov eax, edx
shrd ecx, eax, 0x18
mov eax, dword [esi + 0x74]
movzx ecx, cl
mov dword [esi + 0xb4], ecx
movzx edx, dx
mov al, byte [ecx + eax]
mov byte [esi + 0x104], al
mov eax, dword [ebp - 0x18]
test al, al
je 0x5fa6bb
mov ecx, dword [esi + 0xc]
movzx eax, al
mov dword [ebp - 0xc], eax
cmp eax, 0x10
mov eax, dword [ebp + 8]
ja 0x5fa60f
cmp ecx, 0x10
jb 0x5fa5f3
shr eax, 0x10
xor ecx, 0x10
mov dword [ebp + 8], eax
mov dword [ebx], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], ecx
movzx edi, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edi, 0x10
or edi, dword [ebp + 8]
add eax, 2
mov dword [esi + 0x10], eax
mov eax, edi
mov dword [ebp + 8], edi
mov dword [ebx], edi
mov ebx, dword [ebp - 0xc]
shr eax, cl
mov ebx, dword [ebx*4 + 0x669d80]
and ebx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], ebx
lea ebx, [esi + 8]
jmp 0x5fa6b3
cmp ecx, 0x10
jb 0x5fa63f
shr eax, 0x10
xor ecx, 0x10
mov dword [ebp + 8], eax
mov dword [ebx], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], ecx
movzx edi, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edi, 0x10
or edi, dword [ebp + 8]
add eax, 2
mov dword [esi + 0x10], eax
mov eax, edi
mov dword [ebp + 8], edi
mov dword [ebx], edi
mov ebx, eax
shr ebx, cl
add ecx, 0x10
and ebx, dword [0x669dc0]
mov dword [ebp - 0x1c], ebx
lea ebx, [esi + 8]
mov dword [ebp - 0x14], ecx
mov dword [esi + 0xc], ecx
cmp ecx, 0x10
jb 0x5fa691
mov ecx, eax
mov eax, dword [ebp - 0x14]
xor eax, 0x10
shr ecx, 0x10
mov dword [ebp - 0x14], eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ebx], ecx
movzx edi, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edi, 0x10
or edi, ecx
add eax, 2
mov ecx, edi
mov dword [esi + 0x10], eax
mov dword [ebx], ecx
mov eax, edi
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 8], edi
mov edi, dword [ebp - 0xc]
shr eax, cl
mov edi, dword [edi*4 + 0x669d40]
and edi, eax
mov eax, edi
mov dword [ebp - 0x10], edi
shl eax, 0x10
or eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
add eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0xc]
mov edi, dword [ebp - 8]
shr eax, 8
movzx eax, al
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x10
mov eax, dword [ebx]
ja 0x5fa725
cmp ecx, 0x10
jb 0x5fa706
shr eax, 0x10
xor ecx, 0x10
mov dword [ebp + 8], eax
mov dword [ebx], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], ecx
movzx edi, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edi, 0x10
or edi, dword [ebp + 8]
add eax, 2
mov dword [ebp + 8], edi
mov dword [ebx], edi
mov edi, dword [ebp - 8]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 8]
shr eax, cl
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x669d80]
and dword [ebp + 8], eax
mov eax, dword [ebp - 0xc]
add eax, ecx
mov ecx, dword [ebp + 8]
jmp 0x5fa7d4
cmp ecx, 0x10
jb 0x5fa759
shr eax, 0x10
xor ecx, 0x10
mov dword [ebx], eax
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], ecx
movzx edi, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edi, 0x10
or edi, dword [ebp + 8]
add eax, 2
mov dword [ebp - 0x14], edi
mov dword [ebx], edi
mov edi, dword [ebp - 8]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x14]
mov ebx, eax
shr ebx, cl
add ecx, 0x10
and ebx, dword [0x669dc0]
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 8], ecx
mov dword [esi + 0xc], ecx
cmp ecx, 0x10
jb 0x5fa7af
mov ecx, eax
mov eax, dword [ebp + 8]
xor eax, 0x10
shr ecx, 0x10
mov dword [ebp + 8], eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 8], ecx
movzx edi, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edi, 0x10
or edi, ecx
add eax, 2
mov ecx, edi
mov dword [esi + 0x10], eax
mov dword [ebp - 0x14], edi
mov eax, ecx
mov edi, dword [ebp - 8]
mov dword [esi + 8], ecx
mov ecx, dword [ebp + 8]
jmp 0x5fa7b2
mov dword [ebp + 8], ecx
mov ebx, dword [ebp - 0xc]
shr eax, cl
add ebx, 0xfffffff0
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx*4 + 0x669d40]
and ecx, eax
mov eax, dword [ebp + 8]
shl ecx, 0x10
or ecx, dword [ebp - 0x1c]
add eax, ebx
lea ebx, [esi + 8]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x20]
shr eax, 0x10
add eax, ecx
mov dword [esi + 0x108], eax
dec dword [esi + 0xc4]
add edx, dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
je 0x5fab2d
sub dword [esi + 0xb8], edx
jmp 0x5fa802
mov edx, dword [ebp - 0xc]
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x5fa9fa
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0xc]
mov dword [ebp + 8], eax
mov eax, dword [ebx]
cmp ecx, 0x10
jb 0x5fa854
shr eax, 0x10
xor ecx, 0x10
mov dword [ebp - 0x20], eax
mov dword [ebx], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x1c], ecx
mov dword [esi + 0xc], ecx
movzx ecx, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl ecx, 0x10
or ecx, dword [ebp - 0x20]
add eax, 2
mov dword [esi + 0x10], eax
mov eax, ecx
mov dword [ebp - 0x20], ecx
mov dword [ebx], ecx
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp + 8]
shr eax, cl
and eax, dword [0x669da0]
mov ecx, dword [ebp + 8]
movzx ecx, byte [ecx + eax*4]
movzx eax, word [edi + eax*4 + 2]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x18], ecx
mov dword [ebp + 8], eax
cmp dword [esi + 0x14], 0x1c
jb 0x5fb007
cmp dword [esi + 0xc0], 0
jne 0x5fa8f1
push esi
call fcn.005f99d0
mov edi, dword [esi + 0xc]
add esp, 4
mov eax, dword [esi + 0x100]
mov dword [ebp + 8], eax
cmp edi, 0x10
jb 0x5fa8c9
mov eax, dword [esi + 0x10]
xor edi, 0x10
movzx ecx, word [ebx + 2]
mov dword [ebx], ecx
mov dword [esi + 0xc], edi
movzx edx, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edx, 0x10
or edx, ecx
add eax, 2
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [ebx], edx
jmp 0x5fa8cb
mov edx, dword [ebx]
mov ecx, edi
shr edx, cl
and edx, dword [0x669da0]
cmp dword [esi + 0xb0], 0
movzx ecx, byte [eax + edx*4]
movzx eax, word [eax + edx*4 + 2]
mov dword [ebp - 0x18], ecx
mov dword [ebp + 8], eax
je 0x5fa9f7
mov edx, dword [esi + 0x100]
mov edi, dword [esi + 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x1c], eax
cmp ecx, 8
jbe 0x5fa972
cmp edi, 0x10
jb 0x5fa92f
mov eax, dword [esi + 0x10]
xor edi, 0x10
movzx ecx, word [ebx + 2]
mov dword [ebx], ecx
mov dword [esi + 0xc], edi
movzx edx, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edx, 0x10
or edx, ecx
add eax, 2
mov dword [ebx], edx
mov dword [esi + 0x10], eax
jmp 0x5fa931
mov edx, dword [ebx]
mov eax, dword [ebp - 0x18]
mov ecx, edi
mov dword [ebp - 0x14], edx
add edi, 8
shr edx, cl
mov ecx, edx
mov eax, dword [eax*4 + 0x669d60]
shr ecx, 8
and ecx, eax
mov dword [esi + 0xc], edi
add ecx, dword [ebp + 8]
movzx eax, dl
add eax, ecx
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + eax*4]
lea ecx, [ecx + eax*4]
add edx, edi
mov dword [esi + 0xc], edx
movzx eax, word [ecx + 2]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
jmp 0x5fa97a
lea edx, [edi + ecx]
mov ecx, dword [ebx]
mov dword [esi + 0xc], edx
cmp edx, 0x10
jb 0x5fa9a3
mov eax, dword [esi + 0x10]
xor edx, 0x10
shr ecx, 0x10
mov dword [ebx], ecx
mov dword [esi + 0xc], edx
movzx edi, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edi, 0x10
or edi, ecx
add eax, 2
mov dword [ebx], edi
mov dword [esi + 0x10], eax
jmp 0x5fa9a5
mov edi, ecx
mov eax, dword [ebp - 0x10]
mov ecx, edx
shr edi, cl
and edi, dword [0x669da0]
movzx edx, word [eax + edi*4 + 2]
movzx ecx, byte [eax + edi*4]
mov edi, dword [ebp - 8]
mov eax, dword [esi + 0x60]
mov dword [ebp + 8], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ecx
mov byte [edi + eax], dl
inc edi
mov edx, dword [ebp - 0xc]
dec dword [esi + 0xc0]
dec edx
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edx
cmp edi, dword [esi + 0x40]
je 0x5fafef
test edx, edx
je 0x5fab20
mov eax, dword [ebp + 8]
jmp 0x5fa874
mov edi, dword [ebp - 8]
mov ecx, dword [esi + 0x60]
lea eax, [edi - 1]
and eax, dword [esi + 0x44]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + ecx]
mov byte [ebp + 0xb], al
lea eax, [edi - 2]
and eax, dword [esi + 0x44]
mov al, byte [eax + ecx]
mov byte [ebp - 1], al
nop dword [eax + eax]
cmp dword [esi + 0x14], 0x1c
jb 0x5fb007
cmp dword [esi + 0xc0], 0
jne 0x5faa4a
push esi
call fcn.005f99d0
mov eax, dword [esi + 0xb0]
add esp, 4
test eax, eax
jne 0x5fab56
mov ecx, dword [esi + 0x6c]
movzx eax, byte [ebp - 1]
mov edi, dword [esi + 0xc]
movzx edx, byte [eax + ecx + 0x100]
movzx eax, byte [ebp + 0xb]
movzx eax, byte [eax + ecx]
or edx, eax
mov eax, dword [esi + 0x70]
movzx ecx, byte [edx + eax]
mov eax, dword [esi + 0x78]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x20], eax
mov al, byte [ebp + 0xb]
mov byte [ebp - 1], al
cmp edi, 0x10
jb 0x5faaa6
mov eax, dword [esi + 0x10]
xor edi, 0x10
movzx ecx, word [ebx + 2]
mov dword [ebx], ecx
mov dword [esi + 0xc], edi
movzx edx, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edx, 0x10
or edx, ecx
add eax, 2
mov dword [ebx], edx
mov dword [esi + 0x10], eax
jmp 0x5faaa8
mov edx, dword [ebx]
mov ecx, edi
shr edx, cl
mov ecx, dword [ebp - 0x20]
movzx eax, dl
lea eax, [ecx + eax*4]
mov dword [ebp + 8], eax
mov al, byte [eax]
cmp al, 8
jbe 0x5faae4
movzx eax, al
add edi, 8
mov dword [esi + 0xc], edi
shr edx, 8
mov ecx, dword [eax*4 + 0x669d60]
and ecx, edx
mov edx, dword [ebp + 8]
movzx eax, word [edx + 2]
add ecx, eax
mov al, byte [edx + ecx*4]
lea edx, [edx + ecx*4]
jmp 0x5faae7
mov edx, dword [ebp + 8]
movzx eax, al
add eax, edi
mov edi, dword [ebp - 8]
mov dword [esi + 0xc], eax
mov cl, byte [edx + 2]
mov eax, dword [esi + 0x60]
mov edx, dword [ebp - 0xc]
dec edx
mov byte [ebp + 0xb], cl
mov dword [ebp - 0xc], edx
mov byte [edi + eax], cl
inc edi
dec dword [esi + 0xc0]
mov dword [ebp - 8], edi
cmp edi, dword [esi + 0x40]
je 0x5fafef
test edx, edx
jne 0x5faa20
cmp dword [esi + 0xb8], 0
jle 0x5faee5
mov ecx, dword [esi + 0x10c]
test ecx, ecx
js 0x5fab5e
xor eax, eax
test ecx, ecx
sete al
dec dword [esi + 0x48]
mov dword [esi + 0xb4], eax
mov eax, dword [esi + 0x48]
and eax, 3
mov ecx, dword [esi + eax*4 + 0x4c]
jmp 0x5fadc6
mov edx, dword [ebp - 0xc]
jmp 0x5fa808
cmp dword [esi + 0xc8], 0
jne 0x5fab70
push esi
call fcn.005f9740
add esp, 4
movzx ecx, byte [esi + 0x104]
mov eax, dword [esi + 0x98]
mov edx, dword [ebx]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x20], eax
cmp ecx, 0x10
jb 0x5fabbe
mov eax, dword [esi + 0x10]
xor ecx, 0x10
shr edx, 0x10
mov dword [ebp - 0x18], ecx
mov dword [esi + 0xc], ecx
mov dword [ebx], edx
movzx ecx, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl ecx, 0x10
or ecx, edx
add eax, 2
mov dword [esi + 0x10], eax
mov edx, ecx
mov dword [ebp + 8], ecx
mov eax, ecx
mov dword [ebx], ecx
mov ecx, dword [ebp - 0x18]
jmp 0x5fabc0
mov eax, edx
mov edi, dword [ebp - 0x20]
shr eax, cl
mov dword [ebp + 8], eax
movzx eax, al
lea eax, [edi + eax*4]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov al, byte [eax]
cmp al, 8
jbe 0x5fac0b
shr dword [ebp + 8], 8
add ecx, 8
movzx eax, al
mov dword [esi + 0xc], ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax*4 + 0x669d60]
mov eax, dword [ebp - 0x14]
and ecx, dword [ebp + 8]
movzx eax, word [eax + 2]
add ecx, eax
mov eax, dword [ebp - 0x14]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov al, byte [eax]
movzx eax, al
add eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 2]
dec dword [esi + 0xc8]
mov dword [ebp - 0x1c], ecx
mov dword [esi + 0xb4], 0
test ecx, 0xfffffff0
jne 0x5facc4
mov eax, dword [esi + 0x48]
mov dword [esi + 0x10c], ecx
mov dword [ebp + 8], eax
cmp ecx, 3
ja 0x5fac6e
sub eax, ecx
mov edx, 1
dec eax
sar edx, cl
and eax, 3
mov dword [esi + 0xb4], edx
mov ecx, dword [esi + eax*4 + 0x4c]
mov eax, dword [ebp + 8]
sub eax, edx
mov dword [esi + 0x48], eax
jmp 0x5fadc6
cmp ecx, 0xa
mov edx, 0x605142
sbb eax, eax
and eax, 0xfffffffa
add eax, 0xa
sub ecx, eax
shl ecx, 2
sar edx, cl
and edx, 0xf
cmp dword [ebp - 0x1c], 0xa
sbb eax, eax
neg eax
add eax, 2
add eax, dword [ebp + 8]
and eax, 3
mov ecx, dword [esi + eax*4 + 0x4c]
add ecx, 0xfffffffd
add ecx, edx
mov dword [esi + 0x10c], ecx
test ecx, ecx
jg 0x5fadcc
mov dword [esi + 0x10c], accept
mov ecx, accept
jmp 0x5fadcc
movzx eax, byte [ecx + esi + 0x270]
mov ecx, dword [esi + 0xc]
mov dword [ebp + 8], eax
cmp eax, 0x10
ja 0x5fad1c
cmp ecx, 0x10
jb 0x5fad09
mov eax, dword [esi + 0x10]
xor ecx, 0x10
shr edx, 0x10
mov dword [ebx], edx
mov dword [esi + 0xc], ecx
movzx edi, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edi, 0x10
or edi, edx
add eax, 2
mov edx, edi
mov dword [ebp - 0x20], edi
mov edi, dword [ebp - 8]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [ebx], edx
mov eax, dword [eax*4 + 0x669d80]
shr edx, cl
and eax, edx
add ecx, dword [ebp + 8]
jmp 0x5fada9
cmp ecx, 0x10
jb 0x5fad47
mov eax, dword [esi + 0x10]
xor ecx, 0x10
shr edx, 0x10
mov dword [ebx], edx
mov dword [ebp - 0x20], edx
mov dword [esi + 0xc], ecx
movzx edx, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edx, 0x10
or edx, dword [ebp - 0x20]
add eax, 2
mov dword [ebx], edx
mov dword [esi + 0x10], eax
mov eax, edx
shr eax, cl
and eax, dword [0x669dc0]
mov dword [ebp - 0x18], eax
lea eax, [ecx + 0x10]
mov dword [esi + 0xc], eax
cmp eax, 0x10
jb 0x5fad8b
xor eax, 0x10
mov ecx, edx
mov dword [ebp - 0x20], eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
shr ecx, 0x10
mov dword [ebx], ecx
movzx edx, word [eax]
add dword [esi + 0x14], 0xfffffffe
shl edx, 0x10
or edx, ecx
mov ecx, dword [ebp - 0x20]
add eax, 2
mov dword [ebx], edx
mov dword [esi + 0x10], eax
jmp 0x5fad8d
mov ecx, eax
mov eax, dword [ebp + 8]
shr edx, cl
mov eax, dword [eax*4 + 0x669d40]
and eax, edx
mov edx, dword [ebp + 8]
shl eax, 0x10
add edx, 0xfffffff0
or eax, dword [ebp - 0x18]
add ecx, edx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xf0]
shl eax, cl
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [esi + eax*4 + 0x490]
add ecx, eax
mov dword [esi + 0x10c], ecx
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x38]
mov dword [ebp + 8], eax
cmp eax, edx
je 0x5fade6
cmp edi, edx
mov eax, edx
cmovl eax, edi
mov dword [ebp + 8], eax
mov dword [esi + 0x3c], eax
mov edx, dword [esi + 0x108]
mov dword [ebp - 0xc], edx
cmp ecx, eax
jle 0x5faefd
cmp ecx, 0x7ffffffc
jg 0x5fb05b
lea eax, [edx - 4]
cmp eax, 0x14
ja 0x5fb04f
sub ecx, dword [ebp + 8]
mov edx, dword [esi + 0x248]
dec ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
mov ecx, dword [edx + eax*4 + 0x20]
mov dword [ebp - 0x1c], ecx
movzx ecx, byte [edx + eax]
mov eax, dword [ecx*4 + 0x669d80]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x18]
and dword [ebp + 8], eax
sar eax, cl
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0xb4]
add dword [esi + 0x48], eax
mov eax, dword [edx + 0xa4]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x5fb043
mov eax, dword [esi + 0x24c]
mov edx, dword [ebp - 0x18]
cmp edx, dword [eax + 0xc]
jge 0x5fb037
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
imul eax, ecx
add eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x1c]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x60]
add eax, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x24c]
movsx eax, word [eax + 0x18]
cmp edx, eax
jne 0x5faeaa
push ecx
push dword [ebp + 8]
push dword [ebp - 0x1c]
call fcn.005d67e0
mov eax, dword [ebp - 0x20]
add esp, 0xc
jmp 0x5faec1
mov eax, dword [esi + 0x24c]
push edx
push eax
push ecx
push dword [ebp + 8]
push dword [ebp - 0x1c]
call fcn.005fd140
add esp, 0x14
sub dword [esi + 0xb8], eax
add edi, eax
mov edx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
cmp edi, dword [esi + 0x40]
jge 0x5fb01f
cmp dword [esi + 0xb8], 0
jg 0x5fa4ac
mov dword [esi + 0x34], edi
mov eax, 1
pop edi
mov dword [esi], 0xe
mov dword [esi + 4], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edi
sub eax, ecx
and eax, dword [esi + 0x44]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x60]
lea ebx, [eax + edi]
add eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
lea eax, [edx + edi]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x48]
and eax, 3
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 8]
add ebx, edx
mov dword [ebp - 0x20], ebx
mov dword [esi + eax*4 + 0x4c], ecx
mov eax, dword [ebp - 0x14]
inc dword [esi + 0x48]
sub dword [esi + 0xb8], edx
cmp ebx, edi
mov ecx, dword [ebp - 0x18]
lea ebx, [esi + 8]
movups xmm0, xmmword [eax]
mov eax, dword [ebp - 0x1c]
movups xmmword [ecx], xmm0
jle 0x5faf52
cmp eax, dword [ebp + 8]
jg 0x5fafa5
mov ecx, dword [esi + 0x40]
cmp eax, ecx
jge 0x5fafa5
cmp dword [ebp - 0x20], ecx
jge 0x5fafa5
mov edi, eax
mov dword [ebp - 8], edi
cmp edx, 0x10
jle 0x5faed8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x10
cmp edx, 0x20
jle 0x5faf96
lea eax, [edx - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push ecx
add eax, 0x10
push eax
call fcn.005d67e0
mov edx, dword [ebp - 0xc]
add esp, 0xc
jmp 0x5faed8
movups xmm0, xmmword [ecx]
movups xmmword [eax + 0x10], xmm0
jmp 0x5faed8
mov edx, dword [ebp - 0xc]
mov eax, dword [esi + 0x40]
sub eax, edi
sub edx, 1
mov dword [ebp + 8], eax
mov dword [ebp - 0xc], edx
js 0x5faed8
nop dword [eax]
mov ecx, dword [esi + 0x60]
mov eax, edi
sub eax, dword [esi + 0x10c]
and eax, dword [esi + 0x44]
mov al, byte [eax + ecx]
mov byte [ecx + edi], al
inc edi
sub dword [ebp + 8], 1
mov dword [ebp - 8], edi
je 0x5fb067
sub edx, 1
mov dword [ebp - 0xc], edx
jns 0x5fafc0
jmp 0x5faed8
mov dword [esi + 0x34], edi
mov eax, 1
pop edi
mov dword [esi], 0xd
mov dword [esi + 4], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x34], edi
mov eax, 2
pop edi
mov dword [esi], 8
mov dword [esi + 4], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x34], edi
mov eax, 1
pop edi
mov dword [esi], 0xf
mov dword [esi + 4], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffff5
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffed
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffff0
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x34], edi
mov eax, 1
pop edi
mov dword [esi], 0x10
mov dword [esi + 4], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0xc]
mov dword [esi], 7
mov eax, 2
mov dword [esi + 0x34], edi
pop edi
mov dword [esi + 4], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret