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

Disassembly:
mov eax, 0x3eec
call fcn.005ab330
mov eax, dword [0x68e500]
xor eax, esp
mov dword [esp + 0x3ee8], eax
mov eax, dword [esp + 0x3ef8]
push ebx
push ebp
mov ebp, dword [esp + 0x3f04]
push esi
mov esi, dword [esp + 0x3efc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3f18]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0xb0]
lea ebx, [esi + 4]
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x24], eax
push edi
mov eax, dword [eax + 0x218]
mov edi, dword [esi]
push 0x80
mov dword [esp + 0x48], esi
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x84], eax
xor eax, eax
push eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x3e80]
push eax
mov dword [esp + 0x90], ebp
mov dword [esp + 0x54], 0
mov dword [esp + 0x74], ebx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x5c], 0
mov byte [esp + 0x70], 0
mov byte [esp + 0x3f], 0
mov dword [esp + 0x7c], 0x1312d00
call fcn.005acba0
xorps xmm0, xmm0
mov dword [esp + 0x3e64], 0
push 0x2e04
lea eax, [esp + 0x140]
movq qword [esp + 0x3e60], xmm0
push 0
push eax
movups xmmword [esp + 0x3e78], xmm0
mov dword [esp + 0xf4], edi
movq qword [esp + 0x3e88], xmm0
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], 0x10
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], 0x14
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], 0x14
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
movlpd qword [esp + 0x114], xmm0
movlpd qword [esp + 0x11c], xmm0
movlpd qword [esp + 0x124], xmm0
mov dword [esp + 0x110], ebx
call fcn.005acba0
mov eax, dword [esp + 0x84]
movaps xmm0, xmmword [0x5fb410]
push 0xf1c
mov dword [esp + 0x150], eax
lea eax, [esp + 0x1f8c]
mov dword [esp + 0x14c], esi
mov dword [esp + 0x2ea8], edi
mov dword [esp + 0x2eac], ebx
movups xmmword [esp + 0x2eb0], xmm0
mov dword [esp + 0x2ec0], 0
push 0
push eax
call fcn.005acba0
mov eax, dword [esp + 0xa0]
mov bl, byte [esi + 0xb8]
mov dword [esp + 0x1fa4], eax
lea eax, [esp + 0x1f94]
mov dword [esp + 0x1f98], eax
lea eax, [esp + 0x2eb0]
push 0xf1c
mov dword [esp + 0x1fa0], eax
lea eax, [esp + 0x107c]
push 0
push eax
mov byte [esp + 0x1fad], bl
mov dword [esp + 0x1fa0], esi
call fcn.005acba0
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1094], eax
lea eax, [esp + 0x1fa0]
mov dword [esp + 0x1088], eax
lea eax, [esp + 0x2ebc]
push 0xf1c
mov dword [esp + 0x1090], eax
lea eax, [esp + 0x16c]
push 0
push eax
mov byte [esp + 0x109d], bl
mov dword [esp + 0x1090], esi
call fcn.005acba0
mov ecx, dword [esp + 0xb8]
lea eax, [esp + 0x1fac]
mov dword [esp + 0x178], eax
add esp, 0x3c
lea eax, [esp + 0x2e8c]
mov byte [esp + 0x145], bl
mov dword [esp + 0x140], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x2ea8], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x2eac], eax
mov eax, dword [ebp]
mov dword [esp + 0x2eb4], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x2ec0], eax
lea eax, [esp + 0xa4]
mov dword [esp + 0x2ec4], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0x2ec8], eax
lea eax, [esi + 0xf0]
mov dword [esp + 0x2ed0], eax
mov al, byte [esi + 0xb9]
mov byte [esp + 0x2ebe], al
mov eax, dword [esp + 0x44]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x138], esi
mov esi, dword [esi + 0xe4]
mov ebx, dword [eax + 0xe8]
mov eax, esi
cdq
mov dword [esp + 0x2eb0], ecx
mov ecx, dword [ebp + 4]
mov ebp, dword [esp + 0x3f18]
mov dword [esp + 0x2eb8], ecx
mov ecx, eax
xor ecx, edx
mov dword [esp + 0x1c], ebp
sub ecx, edx
mov dword [esp + 0x2ecc], ebp
mov eax, ebx
mov dword [esp + 0x2ed4], esi
cdq
xor eax, edx
mov dword [esp + 0x2ed8], ebx
sub eax, edx
cmp ecx, eax
jle 0x4f2f9b
test esi, esi
jmp 0x4f2f9f
mov esi, ebx
test ebx, ebx
jns 0x4f2fa3
neg esi
mov ecx, dword [esp + 0x28]
lea eax, [esi + esi]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x2edc], eax
mov dword [esp + 0x2ee0], 0x199a
cmp byte [edx + 9], 0
mov byte [esp + 0x2ebf], 1
mov word [esp + 0x2ebc], 0
setne byte [esp + 0x23]
mov byte [esp + 0x2f0c], 0
mov eax, dword [ecx + 0x218]
mov eax, dword [eax + 0x21c]
shl eax, 0x10
mov dword [esi], eax
cmp byte [edx + 9], 0
je 0x4f300c
mov eax, dword [ecx + 0x214]
mov ebx, dword [eax + 0x614]
jmp 0x4f3011
mov ebx, 0x30
lea eax, [esp + 0xa0]
mov dword [esp + 0x74], ebx
push eax
push 0x14
push edi
call fcn.004ba500
add esp, 0xc
mov esi, eax
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x94], esi
jne 0x4f3073
mov eax, dword [esp + 0x68]
mov dword [esi + 4], eax
lea eax, [esp + 0xa0]
push eax
push 0
push ebx
push 0
push 8
push edi
mov dword [esi], edi
call fcn.004ba550
add esp, 0x18
mov dword [esi + 8], eax
cmp dword [esp + 0xa0], 0
je 0x4f307f
push esi
push edi
call fcn.004ba4e0
add esp, 8
xor esi, esi
xor edi, edi
lea eax, [esi + 0x40]
jmp 0x4f33fe
mov dword [esi + 0xc], eax
lea eax, [esp + 0xdc]
push 0x11
push eax
mov dword [esi + 0x10], ebx
call fcn.004ef7a0
mov ecx, dword [esp + 0xf4]
add esp, 8
mov edi, dword [esp + 0xf4]
test al, al
mov eax, dword [esp + 0x68]
mov edx, 0x11
cmovne ecx, edx
mov dword [esp + 0x24], edi
mov ebx, edi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x18], ebx
cmp dword [eax], 0
jne 0x4f716c
mov eax, dword [esp + 0x3f04]
xor ecx, ecx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x88], edx
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x90], eax
movups xmmword [edi], xmm0
mov edi, dword [esp + 0x3f14]
mov dword [esp + 0x14], edi
jmp 0x4f3148
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x4f6a6d
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
mov ecx, dword [esp + 0x10]
jne 0x4f3148
mov dword [eax], 0x82
nop dword [eax + eax]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x4f3165
test ecx, ecx
mov ebx, 0xb
mov eax, 0xe
cmove ebx, eax
mov dword [esp + 0x34], ebx
jmp 0x4f3192
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
mov bl, cl
mov dword [esp + 0x34], ebx
cmp cl, 0xb
je 0x4f317b
cmp cl, 0xe
jne 0x4f318e
mov ecx, dword [esp + 0x44]
xor edx, edx
movzx ebx, bl
cmp byte [ecx + 9], dl
cmovne ebx, edx
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
mov al, byte [eax + 8]
mov ah, byte [esp + 0x33]
test al, al
je 0x4f322f
test ah, ah
jne 0x4f31e0
cmp bl, 1
je 0x4f31e0
cmp bl, 3
je 0x4f31e0
cmp bl, 0xd
je 0x4f31e0
cmp bl, 0xa
je 0x4f31e0
cmp bl, 0xb
je 0x4f31e0
cmp bl, 0xc
je 0x4f31e0
cmp bl, 0xe
je 0x4f31e0
cmp bl, 0x20
jae 0x4f31e0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov edx, dword [esp + 0x60]
test edx, edx
jle 0x4f320b
cmp bl, 0xa
je 0x4f320b
cmp bl, 0xb
je 0x4f320b
cmp bl, 0xc
je 0x4f320b
cmp bl, 0x20
mov dword [esp + 0x3c], 0
cmovb edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x64]
test dl, dl
je 0x4f322f
cmp bl, 0x20
jae 0x4f322f
cmp bl, 0xc
movzx edx, dl
mov dword [esp + 0x3c], 0
cmovne edx, dword [esp + 0x3c]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x68]
cmp dword [edx], 0
jne 0x4f33f6
sub dword [esp + 0x70], 1
je 0x4f43c3
movzx edx, bl
cmp edx, 0x1f
ja case.default.0x4f3253
jmp dword [edx*4 + 0x4f7174]
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 9], 0
je case.0x4f3253.0
cmp byte [ebx + 0x5d], 0
jne 0x4f43c3
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f329c
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3288
cmp dword [eax], 0
jne 0x4f3288
mov dword [eax], 0xa1
xor eax, eax
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3148
cmp dword [eax - 4], 2
je 0x4f32c8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f32b4
cmp dword [eax], 0
jne 0x4f32b4
mov dword [eax], 0xa0
xor eax, eax
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3148
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x4f3253.0
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 9], 0
je case.0x4f3253.0
cmp dword [ebx + 0x60], 0
je 0x4f43c3
push dword [ebx + 0x80]
mov eax, dword [ebx + 0x224]
lea edi, [ebx + 0x5c]
push dword [ebx + 0x7c]
push dword [ebx + 0x78]
mov eax, dword [eax + 0xc]
push edi
call eax
add esp, 0x10
test al, al
je 0x4f3343
push dword [ebx + 0x80]
mov eax, dword [ebx + 0x224]
push dword [ebx + 0x7c]
push dword [ebx + 0x78]
mov eax, dword [eax + 0x10]
push edi
call eax
add esp, 0x10
mov dword [esp + 0x48], eax
test eax, eax
jne 0x4f33fa
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f3361
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4f335d
cmp dword [ecx], 0
jne 0x4f335d
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x4f3385
cmp dword [eax - 4], 2
je 0x4f337d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3379
cmp dword [eax], 0
jne 0x4f3379
mov dword [eax], 0xa0
xor eax, eax
jmp 0x4f3385
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x74]
ja 0x4f43c3
push eax
push esi
push edi
call fcn.004f0300
mov byte [ebx + 0x5d], 1
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x4f3140
test al, al
jne 0x4f33bc
cmp byte [esp + 0xfc], al
jne case.0x4f3253.0
xor eax, eax
jmp 0x4f33c6
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 4]
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xc8]
push dword [esp + 0x64]
push eax
push esi
push dword [esp + 0x58]
call fcn.004f0840
mov eax, dword [esp + 0x40]
add esp, 0x18
cmp byte [eax + 0x224], 0
je 0x4f5d42
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x4f340d
cmp dword [ebx], 0
jne 0x4f340d
mov dword [ebx], eax
push dword [esp + 0x2ea4]
mov dword [esp + 0x2e9c], 0
push dword [esp + 0x2e90]
mov dword [esp + 0x2ea4], 0
mov dword [esp + 0x2ea8], 0
call fcn.004ba4e0
push dword [esp + 0xc4]
mov dword [esp + 0x2eb0], 0
push dword [esp + 0xb0]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
call fcn.004ba4e0
push dword [esp + 0xe8]
mov dword [esp + 0xd0], 0
push dword [esp + 0xd4]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
call fcn.004ba4e0
push edi
push dword [esp + 0xf8]
mov dword [esp + 0xf8], 0
call fcn.004ba4e0
add esp, 0x20
test esi, esi
je 0x4f34fa
push dword [esi + 8]
mov edi, dword [esi]
push edi
call fcn.004ba4e0
push esi
push edi
mov dword [esi + 8], 0
call fcn.004ba4e0
add esp, 0x10
mov ecx, dword [esp + 0x3ef8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005aa453
add esp, 0x3eec
ret
test al, al
jne 0x4f3538
cmp byte [esp + 0xfc], al
jne case.0x4f3253.0
xor eax, eax
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xac]
jmp 0x4f33d3
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xac]
jmp 0x4f33d3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x4f359d
cmp byte [esp + 0x23], 0
jne 0x4f359d
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x4f357e
sub eax, 1
jne 0x4f358e
shl ecx, 0x10
jmp 0x4f358e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x80]
add eax, ecx
mov ecx, dword [esp + 0x5c]
mov dword [ecx], eax
mov ebx, dword [esp + 0x28]
mov byte [esp + 0x23], 1
cmp byte [ebx + 0x224], 0
jne 0x4f33f6
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f35d1
mov eax, dword [esi + 4]
test eax, eax
je 0x4f35cd
cmp dword [eax], 0
jne 0x4f35cd
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f35fb
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f35eb
sub eax, 1
jne 0x4f35fb
shl ecx, 0x10
jmp 0x4f35fb
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
cmp dword [ebx + 0x1d4], 0
jne 0x4f5d42
push ebp
lea eax, [esp + 0x134]
push edi
push eax
call fcn.004f1a70
mov eax, dword [esi + 8]
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov ebp, dword [esi + 0xc]
xor ebx, ebx
sub ebp, dword [esi + 8]
sar ebp, 3
test ebp, ebp
je 0x4f69f2
nop dword [eax]
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebx, eax
jb 0x4f367d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3679
cmp dword [eax], 0
jne 0x4f3679
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x4f36a3
mov eax, dword [edx + ebx*8 + 4]
mov edi, dword [edx + ebx*8]
sub eax, 1
je 0x4f3693
sub eax, 1
jne 0x4f36a3
shl edi, 0x10
jmp 0x4f36a3
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
add dword [esp + 0x14], edi
lea eax, [ebx + 1]
mov edi, dword [esp + 0x14]
sub ecx, edx
sar ecx, 3
mov dword [esp + 0x3f14], edi
cmp eax, ecx
jb 0x4f36d4
mov eax, dword [esi + 4]
test eax, eax
je 0x4f36d0
cmp dword [eax], 0
jne 0x4f36d0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f36fb
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x4f36eb
sub eax, 1
jne 0x4f36fb
shl ecx, 0x10
jmp 0x4f36fb
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
add eax, ecx
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f1c], eax
lea eax, [esp + 0x134]
push edi
push eax
call fcn.004f18f0
add ebx, 2
add esp, 0xc
cmp ebx, ebp
jb 0x4f3650
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3144
mov ebp, dword [esi + 0xc]
sub ebp, dword [esi + 8]
sar ebp, 3
cmp bl, 6
sete bl
xor edi, edi
test ebp, ebp
je 0x4f37ed
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f377a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3776
cmp dword [eax], 0
jne 0x4f3776
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f37a0
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f3790
sub eax, 1
jne 0x4f37a0
shl ecx, 0x10
jmp 0x4f37a0
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test bl, bl
je 0x4f37b7
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x3f14], eax
jmp 0x4f37cc
mov eax, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3f18], eax
mov eax, dword [esp + 0x14]
push dword [esp + 0x1c]
xor bl, 1
push eax
lea eax, [esp + 0x138]
push eax
call fcn.004f18f0
inc edi
add esp, 0xc
cmp edi, ebp
jb 0x4f3755
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3140
mov eax, dword [esi + 0xc]
xor ebp, ebp
sub eax, dword [esi + 8]
sar eax, 3
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], ebp
cmp eax, 6
jb 0x4f3a82
lea ebx, [ebp + 2]
nop
mov edi, dword [esi + 0xc]
mov eax, edi
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebp, eax
jb 0x4f384d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3849
cmp dword [eax], 0
jne 0x4f3849
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f3874
mov eax, dword [edx + ebx*8 - 0xc]
mov ecx, dword [edx + ebx*8 - 0x10]
sub eax, 1
je 0x4f3864
sub eax, 1
jne 0x4f3874
shl ecx, 0x10
jmp 0x4f3874
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x14]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x54], eax
sar ecx, 3
lea eax, [ebx - 1]
cmp eax, ecx
jb 0x4f38a8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f38a4
cmp dword [eax], 0
jne 0x4f38a4
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f38cf
mov eax, dword [edx + ebx*8 - 4]
mov ecx, dword [edx + ebx*8 - 8]
sub eax, 1
je 0x4f38bf
sub eax, 1
jne 0x4f38cf
shl ecx, 0x10
jmp 0x4f38cf
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x1c]
mov eax, edi
sub eax, edx
add ebp, ecx
sar eax, 3
mov dword [esp + 0x3c], ebp
cmp ebx, eax
jb 0x4f3900
mov eax, dword [esi + 4]
test eax, eax
je 0x4f38fc
cmp dword [eax], 0
jne 0x4f38fc
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f3926
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x4f3916
sub eax, 1
jne 0x4f3926
shl ecx, 0x10
jmp 0x4f3926
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x54]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x4c], eax
sar ecx, 3
lea eax, [ebx + 1]
cmp eax, ecx
jb 0x4f395a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3956
cmp dword [eax], 0
jne 0x4f3956
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f3981
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x4f3971
sub eax, 1
jne 0x4f3981
shl ecx, 0x10
jmp 0x4f3981
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
lea eax, [ebx + 2]
mov ecx, edi
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x4f39ad
mov eax, dword [esi + 4]
test eax, eax
je 0x4f39a9
cmp dword [eax], 0
jne 0x4f39a9
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f39d4
mov eax, dword [edx + ebx*8 + 0x14]
mov ecx, dword [edx + ebx*8 + 0x10]
sub eax, 1
je 0x4f39c4
sub eax, 1
jne 0x4f39d4
shl ecx, 0x10
jmp 0x4f39d4
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x4c]
sub edi, edx
add eax, ecx
sar edi, 3
mov dword [esp + 0x14], eax
lea eax, [ebx + 3]
cmp eax, edi
jb 0x4f3a00
mov eax, dword [esi + 4]
test eax, eax
je 0x4f39fc
cmp dword [eax], 0
jne 0x4f39fc
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f3a27
mov eax, dword [edx + ebx*8 + 0x1c]
mov ecx, dword [edx + ebx*8 + 0x18]
sub eax, 1
je 0x4f3a17
sub eax, 1
jne 0x4f3a27
shl ecx, 0x10
jmp 0x4f3a27
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x14]
lea eax, [ecx + ebp]
push eax
push edi
push ebp
push dword [esp + 0x58]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x140]
push dword [esp + 0x4c]
push dword [esp + 0x68]
push eax
call fcn.004f1590
mov eax, dword [esp + 0x38]
add ebx, 6
mov ebp, dword [esp + 0x5c]
add esp, 0x1c
mov dword [esp + 0x3f18], eax
add ebp, 6
mov dword [esp + 0x3f14], edi
lea eax, [ebx + 4]
mov dword [esp + 0x40], ebp
cmp eax, dword [esp + 0x2c]
jbe 0x4f3820
mov ebx, dword [esp + 0x34]
cmp bl, 0x18
jne 0x4f3b6d
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp ebp, eax
jb 0x4f3ab8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3ab4
cmp dword [eax], 0
jne 0x4f3ab4
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x4f3ade
mov eax, dword [edi + ebp*8 + 4]
mov edx, dword [edi + ebp*8]
sub eax, 1
je 0x4f3ace
sub eax, 1
jne 0x4f3ade
shl edx, 0x10
jmp 0x4f3ade
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x14]
sub ecx, edi
add eax, edx
sar ecx, 3
mov dword [esp + 0x14], eax
mov dword [esp + 0x3f14], eax
lea eax, [ebp + 1]
cmp eax, ecx
jb 0x4f3b11
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3b0d
cmp dword [eax], 0
jne 0x4f3b0d
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f3b37
mov ecx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
sub eax, 1
je 0x4f3b27
sub eax, 1
jne 0x4f3b37
shl ecx, 0x10
jmp 0x4f3b37
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x1c]
lea eax, [esp + 0x130]
mov edi, dword [esp + 0x14]
add ebp, ecx
push ebp
push edi
push eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x3f24], ebp
call fcn.004f18f0
mov eax, dword [esi + 8]
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3144
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3144
test al, al
je case.0x4f3253.0
cmp byte [esp + 0x2ebc], 0
je 0x4f3c0c
push dword [esp + 0x2f08]
lea eax, [esp + 0x134]
mov byte [esp + 0x2ec1], 1
push dword [esp + 0x2f08]
push eax
call fcn.004f18f0
add esp, 0xc
cmp byte [esp + 0x2f0c], 0
je 0x4f3bf2
push 1
push dword [esp + 0x2ef4]
lea eax, [esp + 0x2eec]
push dword [esp + 0x2ef4]
push eax
lea eax, [esp + 0x148]
push eax
lea eax, [esp + 0x144]
push eax
call fcn.004f1bc0
add esp, 0x18
mov byte [esp + 0x2ebf], 1
mov word [esp + 0x2ebc], 0
mov byte [esp + 0x2f0c], 0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x23], 1
mov dword [esi + 0xc], eax
jmp 0x4f3148
cmp ecx, 0x10
jg 0x4f43c3
inc ecx
cmp ecx, dword [esp + 0x8c]
jb 0x4f3c4f
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4f3c4d
cmp dword [eax], 0
jne 0x4f3c4d
mov dword [eax], 0x82
xor ecx, ecx
mov eax, dword [esp + 0x90]
imul eax, ecx
add eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f3c7f
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3c7b
cmp dword [eax], 0
jne 0x4f3c7b
mov dword [eax], 0xa1
xor eax, eax
jmp 0x4f3ca3
cmp dword [eax - 4], 2
je 0x4f3c9b
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3c97
cmp dword [eax], 0
jne 0x4f3c97
mov dword [eax], 0xa0
xor eax, eax
jmp 0x4f3ca3
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x28]
cmp byte [ecx + 8], 0
je 0x4f3cd4
mov ecx, dword [edx + 0x268]
test ecx, ecx
je 0x4f3cd4
push ecx
push eax
call fcn.004ba0a0
mov edx, dword [esp + 0x30]
add esp, 8
test eax, eax
je 0x4f3cd1
mov eax, dword [eax]
jmp 0x4f3cd4
or eax, 0xffffffff
cmp bl, 0x1d
xorps xmm0, xmm0
mov ebx, dword [esp + 0x18]
movups xmmword [ebx], xmm0
je 0x4f3d79
mov ecx, dword [edx + 0x234]
add ecx, eax
cmp ecx, dword [edx + 0x22c]
jb 0x4f3d01
mov eax, 1
jmp 0x4f3dae
mov eax, dword [esp + 0x28]
lea edx, [ecx*4]
mov eax, dword [eax + 0x23c]
mov ecx, dword [edx + eax]
mov eax, dword [esp + 0x28]
mov dword [ebx + 4], ecx
cmp byte [eax + 0x30], 0
je 0x4f3d5d
mov eax, dword [eax + 0x264]
test eax, eax
je 0x4f3d3b
test ecx, ecx
je 0x4f3d37
mov eax, dword [eax + edx]
add eax, ecx
jmp 0x4f3d67
xor eax, eax
jmp 0x4f3d67
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], 0
mov eax, dword [eax + 0x260]
test eax, eax
cmovs eax, dword [esp + 0x3c]
add eax, ecx
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x23c]
mov eax, dword [eax + edx + 4]
mov edx, 8
mov ecx, ebx
mov dword [edx + ecx], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
jmp 0x4f3dac
mov ecx, dword [edx + 0x238]
add ecx, eax
cmp ecx, dword [edx + 0x230]
jb 0x4f3d90
mov eax, 1
jmp 0x4f3dae
mov eax, dword [edx + 0x240]
mov eax, dword [eax + ecx*4]
mov dword [ebx + 0xc], eax
mov dword [ebx + 4], eax
mov eax, dword [edx + 0x240]
mov eax, dword [eax + ecx*4 + 4]
mov dword [ebx + 8], eax
xor eax, eax
test eax, eax
jne 0x4f43c3
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x4f3148
cmp ecx, 1
jl 0x4f43c3
dec ecx
mov ebx, ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x8c]
jb 0x4f3df5
mov edx, dword [esp + 0x88]
test edx, edx
je 0x4f3df3
cmp dword [edx], 0
jne 0x4f3df3
mov dword [edx], 0x82
xor ebx, ebx
imul ebx, dword [esp + 0x90]
add ebx, dword [esp + 0x24]
mov dword [esp + 0x18], ebx
jmp 0x4f3148
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x4f3e1e
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
jmp 0x4f3e31
mov eax, dword [ebx]
test eax, eax
je 0x4f3e2f
cmp dword [eax], 0
jne 0x4f3e2f
mov dword [eax], 0x55
xor cl, cl
movzx eax, cl
add eax, 0xfffffff8
mov byte [esp + 0x5b], cl
cmp eax, 0x1d
ja case.0x4f3e4b.9
movzx eax, byte [eax + 0x4f720c]
jmp dword [eax*4 + 0x4f71f4]
push 0
push 0x5fadc0
jmp 0x4f3eb8
push 0
push 0x5fadcc
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x3f24]
push eax
lea eax, [esp + 0x3f24]
push eax
push esi
call fcn.004f0530
mov ebp, dword [esp + 0x3f30]
add esp, 0x18
mov edi, dword [esp + 0x3f14]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], edi
mov dword [esi + 0xc], eax
jmp 0x4f3148
push 0
push 0x5fadd8
jmp 0x4f3eb8
push 1
push 0x5fade4
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x3f24]
push eax
lea eax, [esp + 0x3f24]
push eax
push esi
call fcn.004f0530
mov ebp, dword [esp + 0x3f30]
add esp, 0x18
mov edi, dword [esp + 0x3f14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], edi
jmp 0x4f3144
mov eax, dword [esp + 0x44]
cmp byte [eax + 9], 0
jne case.0x4f3f40.0
cmp cl, 0x26
jae case.0x4f3f40.0
mov al, byte [eax + 8]
mov edx, dword [esp + 0x60]
test al, al
je 0x4f3f34
test edx, edx
jle 0x4f3f34
cmp cl, 0x11
je 0x4f3f34
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x4f3148
movzx ecx, cl
cmp ecx, 0x21
ja case.0x4f3f40.0
jmp dword [ecx*4 + 0x4f722c]
test al, al
je case.0x4f3f40.0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x4f3f74
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3f70
cmp dword [eax], 0
jne 0x4f3f70
mov dword [eax], 0x82
xor edi, edi
jmp 0x4f3f98
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x4f3f88
sub eax, 1
jne 0x4f3f98
shl edi, 0x10
jmp 0x4f3f98
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 2
ja 0x4f3fbe
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3fba
cmp dword [eax], 0
jne 0x4f3fba
mov dword [eax], 0x82
xor ebx, ebx
jmp 0x4f3fe3
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x10]
sub eax, 1
je 0x4f3fd3
sub eax, 1
jne 0x4f3fe3
shl ebx, 0x10
jmp 0x4f3fe3
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 4
ja 0x4f4009
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4005
cmp dword [eax], 0
jne 0x4f4005
mov dword [eax], 0x82
xor edx, edx
jmp 0x4f402e
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x20]
sub eax, 1
je 0x4f401e
sub eax, 1
jne 0x4f402e
shl edx, 0x10
jmp 0x4f402e
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esi + 0xc]
mov ebp, dword [esi + 8]
sub eax, ebp
sar eax, 3
cmp eax, 1
ja 0x4f4054
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4050
cmp dword [eax], 0
jne 0x4f4050
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f4079
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 1
je 0x4f4069
sub eax, 1
jne 0x4f4079
shl ecx, 0x10
jmp 0x4f4079
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
mov ebp, dword [esi + 8]
sub eax, ebp
sar eax, 3
cmp eax, 2
jae 0x4f409d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f40b0
cmp dword [eax], 0
jne 0x4f40b0
mov dword [eax], 0x82
jmp 0x4f40b0
mov eax, ebx
sub eax, edi
sub eax, ecx
mov dword [ebp + 0x10], eax
mov eax, dword [esi + 8]
mov dword [eax + 0x14], 0
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp eax, 3
ja 0x4f40d6
mov eax, dword [esi + 4]
test eax, eax
je 0x4f40d2
cmp dword [eax], 0
jne 0x4f40d2
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f40fb
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x18]
sub eax, 1
je 0x4f40eb
sub eax, 1
jne 0x4f40fb
shl ecx, 0x10
jmp 0x4f40fb
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp eax, 4
jae 0x4f411f
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4130
cmp dword [eax], 0
jne 0x4f4130
mov dword [eax], 0x82
jmp 0x4f4130
sub edx, ebx
sub edx, ecx
mov dword [edi + 0x20], edx
mov eax, dword [esi + 8]
mov dword [eax + 0x24], 0
cmp byte [esp + 0x5b], 1
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x20]
jne 0x4f4142
mov eax, dword [eax]
jmp 0x4f4145
mov eax, dword [eax + 4]
push eax
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x64]
lea edx, [esp + 0xcc]
lea eax, [esp + 0xb0]
cmovne eax, edx
push eax
push esi
push dword [esp + 0x58]
call fcn.004f0840
add esp, 0x18
cmp byte [ebx + 0x224], 0
jne 0x4f33f6
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f41b4
mov eax, dword [esi + 4]
test eax, eax
je 0x4f41b0
cmp dword [eax], 0
jne 0x4f41b0
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f41de
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f41ce
sub eax, 1
jne 0x4f41de
shl edx, 0x10
jmp 0x4f41de
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x4f4207
mov eax, dword [esi + 4]
test eax, eax
je 0x4f42e9
cmp dword [eax], 0
jne 0x4f42e9
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f3109
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov ecx, dword [edi]
sub eax, 1
je 0x4f4221
sub eax, 1
jne 0x4f4231
shl ecx, 0x10
jmp 0x4f4231
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
je 0x4f42e9
test edx, edx
je 0x4f42e9
mov edx, 1
jmp 0x4f3109
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f4269
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4265
cmp dword [eax], 0
jne 0x4f4265
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f4293
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f4283
sub eax, 1
jne 0x4f4293
shl edx, 0x10
jmp 0x4f4293
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x4f42af
mov eax, dword [esi + 4]
test eax, eax
je 0x4f42e1
cmp dword [eax], 0
jne 0x4f42e1
mov dword [eax], 0xa1
jmp 0x4f42e1
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov ecx, dword [edi]
sub eax, 1
je 0x4f42c9
sub eax, 1
jne 0x4f42d9
shl ecx, 0x10
jmp 0x4f42d9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
jne 0x4f4241
test edx, edx
jne 0x4f4241
xor edx, edx
jmp 0x4f3109
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f430e
mov eax, dword [esi + 4]
test eax, eax
je 0x4f430a
cmp dword [eax], 0
jne 0x4f430a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f4338
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f4328
sub eax, 1
jne 0x4f4338
shl edx, 0x10
jmp 0x4f4338
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
cmp edi, eax
je 0x4f3121
xor eax, eax
test edx, edx
sete al
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x14]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x4f3148
test al, al
je case.0x4f3f40.0
mov eax, dword [esp + 0x28]
push esi
mov edx, dword [eax + 4]
call fcn.004f73d0
mov edi, eax
push esi
mov dword [esp + 0x44], edi
call fcn.004f73d0
push esi
mov ebp, eax
call fcn.004f7380
push esi
mov dword [esp + 0x84], eax
call fcn.004f7380
push esi
mov ebx, eax
call fcn.004f7380
add esp, 0x14
mov dword [esp + 0x70], eax
cmp byte [esp + 0x3f10], 0
je 0x4f6d31
mov eax, 0x12
jmp 0x4f33fa
test al, al
je case.0x4f3f40.0
push esi
call fcn.004f7380
mov edx, dword [esp + 0x2c]
push esi
mov ecx, dword [edx + 0x24]
mov dword [ecx + 4], eax
call fcn.004f7380
mov ecx, dword [edx + 0x24]
push esi
mov dword [ecx], eax
call fcn.004f7380
push esi
mov edx, eax
call fcn.004f7380
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov byte [esp + 0x23], 1
mov ecx, dword [ecx + 0x20]
add dword [ecx], eax
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x20]
add dword [ecx + 4], edx
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x2f], 0
jne 0x4f33f6
cmp byte [esp + 0x33], 0
mov ecx, dword [esp + 0x10]
je 0x4f5d4a
add edi, eax
mov eax, dword [esi + 8]
add ebp, edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp edx, edi
jne 0x4f448f
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4477
cmp dword [eax], 0
jne 0x4f4477
mov dword [eax], 0xa1
xor ecx, ecx
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
push eax
push esi
call fcn.004f7420
add esp, 8
jmp 0x4f3140
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f44a9
sub eax, 1
jne 0x4f44b9
shl ecx, 0x10
jmp 0x4f44b9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
cmp ecx, reloc.WS2_32.dll_accept
jge 0x4f4479
mov eax, dword [esi + 0x10]
lea eax, [edi + eax*8]
cmp edx, eax
jne 0x4f44e4
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3140
cmp dword [eax], 0
jne 0x4f3140
jmp 0x4f3135
mov dword [edx], accept
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3140
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x4f451b
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4517
cmp dword [eax], 0
jne 0x4f4517
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f4545
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov edi, dword [edi]
sub eax, 1
je 0x4f4535
sub eax, 1
jne 0x4f4545
shl edi, 0x10
jmp 0x4f4545
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f4563
mov eax, dword [esi + 4]
test eax, eax
je 0x4f455f
cmp dword [eax], 0
jne 0x4f455f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f458d
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x4f457d
sub eax, 1
jne 0x4f458d
shl edx, 0x10
jmp 0x4f458d
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
cmp ebx, eax
jne 0x4f45c2
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
jmp 0x4f3135
lea eax, [edx + edi]
mov edi, dword [esp + 0x14]
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3148
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x4f4600
mov eax, dword [esi + 4]
test eax, eax
je 0x4f45fc
cmp dword [eax], 0
jne 0x4f45fc
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f462a
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov edi, dword [edi]
sub eax, 1
je 0x4f461a
sub eax, 1
jne 0x4f462a
shl edi, 0x10
jmp 0x4f462a
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f4648
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4644
cmp dword [eax], 0
jne 0x4f4644
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f4672
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x4f4662
sub eax, 1
jne 0x4f4672
shl edx, 0x10
jmp 0x4f4672
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
cmp ebx, eax
jne 0x4f46a7
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
jmp 0x4f3135
sub edx, edi
mov edi, dword [esp + 0x14]
mov dword [ebx], edx
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3148
test al, al
je 0x4f46e6
cmp byte [esp + 0x64], 0
je 0x4f46e6
push esi
call fcn.004f73d0
push esi
mov edx, eax
call fcn.004f73d0
mov byte [esp + 0x6c], 0
jmp 0x4f46f4
push esi
call fcn.004f7380
push esi
mov edx, eax
call fcn.004f7380
add esp, 8
push edx
push eax
call fcn.004b43d0
mov edx, dword [esi + 0x10]
add esp, 8
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x4f472a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3140
cmp dword [eax], 0
jne 0x4f3140
jmp 0x4f3135
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3140
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp edx, edi
jne 0x4f476e
mov eax, dword [esi + 4]
test eax, eax
je 0x4f475b
cmp dword [eax], 0
jne 0x4f475b
mov dword [eax], 0xa1
xor ecx, ecx
neg ecx
push ecx
push esi
call fcn.004f7420
add esp, 8
jmp 0x4f3140
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f4788
sub eax, 1
jne 0x4f4798
shl ecx, 0x10
jmp 0x4f4798
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
cmp ecx, reloc.WS2_32.dll_accept
jl 0x4f44c1
neg ecx
push ecx
push esi
call fcn.004f7420
add esp, 8
jmp 0x4f3140
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x4f47d3
mov eax, dword [esi + 4]
test eax, eax
je 0x4f47cf
cmp dword [eax], 0
jne 0x4f47cf
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f47fd
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov edi, dword [edi]
sub eax, 1
je 0x4f47ed
sub eax, 1
jne 0x4f47fd
shl edi, 0x10
jmp 0x4f47fd
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f481b
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4817
cmp dword [eax], 0
jne 0x4f4817
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f4845
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x4f4835
sub eax, 1
jne 0x4f4845
shl edx, 0x10
jmp 0x4f4845
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
cmp ebx, eax
jne 0x4f487a
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
jmp 0x4f3135
xor eax, eax
cmp edx, edi
mov edi, dword [esp + 0x14]
sete al
mov dword [ebx], eax
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x4f3148
mov ecx, dword [esp + 0x10]
test al, al
je 0x4f3148
push esi
call fcn.004f73d0
push esi
mov edx, eax
call fcn.004f73d0
mov ebp, dword [esi + 0xc]
mov ebx, eax
mov ecx, dword [esi + 8]
add esp, 8
sub ebp, ecx
mov dword [esp + 0x40], ebx
sar ebp, 3
cmp ebx, ebp
ja 0x4f43c3
sub ebp, ebx
mov dword [esp + 0x50], 0
xor eax, eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x60], eax
cmp edx, 0x1c
ja case.0x4f48f8.4
movzx eax, byte [edx + 0x4f72f4]
jmp dword [eax*4 + 0x4f72b4]
cmp ebx, 3
jne 0x4f43c3
cmp byte [esp + 0x33], 0
je 0x4f492d
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x1d4], 0
je 0x4f43c3
cmp dword [eax + 0x1d8], 7
jne 0x4f43c3
push edi
push esi
call fcn.004f7420
mov ebp, dword [esp + 0x24]
push ebp
push esi
call fcn.004f7420
mov ebx, dword [esp + 0x28]
add esp, 0x10
mov dword [esp + 0x50], 2
jmp 0x4f3144
test ebx, ebx
jne 0x4f43c3
cmp byte [esp + 0x33], bl
je 0x4f4c27
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0xc]
movsx eax, word [edx + 0x16]
movsx ecx, word [edx + 0x3a]
add eax, 6
add eax, ecx
cmp eax, dword [edx + 4]
jbe 0x4f4992
push ebx
push 6
push edx
call fcn.004b4cb0
add esp, 0xc
test eax, eax
jne 0x4f33f6
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [ecx + 0x1d4], 1
mov dword [ecx + 0x1d8], 0
jmp 0x4f3144
test ebx, ebx
jne 0x4f43c3
cmp byte [esp + 0x33], bl
je 0x4f4c27
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x1d4], ebx
je 0x4f43c3
mov edi, dword [ecx + 0x1d8]
lea eax, [edi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [edi - 1]
cmp eax, 5
ja 0x4f4c27
push 1
push ecx
call fcn.004ed140
add esp, 8
test eax, eax
jne 0x4f43c3
lea eax, [edi - 3]
cmp edi, 3
jg 0x4f4a11
mov eax, edi
mov ebp, dword [esp + 0x14]
add eax, eax
mov dword [esp + eax*4 + 0x3e58], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x3e5c], ebp
cmp edi, 3
je 0x4f4a37
cmp edi, 6
jne 0x4f4c2b
push dword [esp + 0x3e74]
lea eax, [esp + 0x134]
push dword [esp + 0x3e74]
push dword [esp + 0x3e74]
push dword [esp + 0x3e74]
push dword [esp + 0x3e74]
push dword [esp + 0x3e74]
push eax
call fcn.004f1590
mov ebx, dword [esp + 0x34]
add esp, 0x1c
jmp 0x4f3140
cmp ebx, 1
jne 0x4f43c3
cmp byte [esp + 0x33], 0
je 0x4f4ad4
mov eax, dword [esp + 0x68]
xorps xmm0, xmm0
movups xmmword [esp + 0xf8], xmm0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xd0], 0
movq qword [esp + 0x108], xmm0
mov dword [esp + 0x110], 0
mov dword [esp + 0xf8], eax
mov word [esp + 0xfc], 0x100
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f3144
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], ecx
jmp 0x4f3144
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x284]
mov dword [esp + 0x34], ebx
test ebx, ebx
je 0x4f43c3
xor eax, eax
cmp edx, 0x12
sete al
lea ecx, [eax - 0xd]
mov eax, dword [ebx]
add ecx, edx
mov edx, dword [esp + 0x40]
imul eax, ecx
mov dword [esp + 0x50], ecx
cmp edx, eax
jne 0x4f43c3
lea edi, [ecx + ebp]
test ecx, ecx
je 0x4f4beb
mov dword [esp + 0x54], ecx
push ebp
push esi
call fcn.004f7320
add esp, 8
mov ebp, eax
cmp dword [ebx], 1
jbe 0x4f4bc4
mov eax, 1
mov ebx, 4
sub eax, edi
mov dword [esp + 0x38], eax
push edi
push esi
call fcn.004f7320
mov dword [esp + 0x44], eax
add esp, 8
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x88]
mov eax, dword [ebx + eax]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x34]
lea ebx, [ebx + 4]
mov eax, dword [esp + 0x38]
inc edi
add ebp, dword [esp + 0x98]
add eax, edi
cmp eax, dword [ecx]
jb 0x4f4b61
mov ebx, ecx
push ebp
mov ebp, dword [esp + 0x50]
push ebp
push esi
call fcn.004f7460
inc ebp
add esp, 0xc
sub dword [esp + 0x54], 1
mov dword [esp + 0x4c], ebp
jne 0x4f4b40
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
sub edx, ecx
mov ecx, dword [esi + 0xc]
mov eax, ecx
sub eax, dword [esi + 8]
sar eax, 3
cmp edx, eax
jbe 0x4f4c1b
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4c27
cmp dword [eax], 0
jne 0x4f4c27
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [eax], 0xa1
jmp 0x4f3140
lea eax, [edx*8]
sub ecx, eax
mov dword [esi + 0xc], ecx
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jmp 0x4f3140
mov ebp, dword [esp + 0x28]
mov edi, dword [ebp + 0x284]
mov edx, dword [ebp + 0x28c]
cmp ebx, 1
jne 0x4f43c3
test edi, edi
je 0x4f43c3
push esi
call fcn.004f73d0
mov ebx, eax
add esp, 4
mov eax, dword [edi]
cmp edx, eax
jb 0x4f43c3
sub edx, eax
cmp edx, ebx
jb 0x4f43c3
mov edx, dword [ebp + 0x288]
test edx, edx
je 0x4f4c27
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x4f4c27
shl eax, 2
push eax
push ecx
lea eax, [edx + ebx*4]
push eax
call fcn.005ac620
mov ebp, dword [esp + 0x28]
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x4f3140
cmp ebx, 2
jne 0x4f43c3
push esi
call fcn.004f7380
push esi
mov edx, eax
call fcn.004f7380
add eax, edx
push eax
push esi
call fcn.004f7420
mov ebp, dword [esp + 0x2c]
add esp, 0x10
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f3144
cmp ebx, 2
jne 0x4f43c3
push esi
call fcn.004f7380
push esi
mov edx, eax
call fcn.004f7380
sub eax, edx
push eax
push esi
call fcn.004f7420
mov ebp, dword [esp + 0x2c]
add esp, 0x10
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f3144
cmp ebx, 2
jne 0x4f43c3
push esi
call fcn.004f7380
push esi
mov dword [esp + 0x54], eax
call fcn.004f7380
add esp, 8
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x9c], eax
push dword [esp + 0x9c]
push esi
call fcn.004f7420
mov ebp, dword [esp + 0x24]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f3144
cmp ebx, 2
jne 0x4f43c3
push esi
call fcn.004f7380
push esi
mov edx, eax
call fcn.004f7380
add esp, 8
test edx, edx
je 0x4f43c3
push edx
push eax
call fcn.004b43d0
push eax
push esi
call fcn.004f7420
mov ebp, dword [esp + 0x2c]
add esp, 0x10
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f3144
cmp ebx, 2
jne 0x4f43c3
mov ebx, dword [esp + 0x28]
cmp dword [ebx + 0x284], 0
je 0x4f43c3
push esi
call fcn.004f73d0
mov edx, eax
add esp, 4
cmp edx, dword [ebx + 0x28c]
jae 0x4f43c3
push esi
call fcn.004f7380
mov ecx, dword [ebx + 0x288]
add esp, 4
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [ecx + edx*4], eax
jmp 0x4f3144
cmp ebx, 1
jne 0x4f43c3
mov edx, dword [esp + 0x28]
cmp dword [edx + 0x284], 0
je 0x4f43c3
push esi
call fcn.004f73d0
add esp, 4
cmp eax, dword [edx + 0x28c]
jae 0x4f43c3
mov ecx, dword [edx + 0x288]
push dword [ecx + eax*4]
jmp 0x4f4d66
cmp ebx, 4
jne 0x4f43c3
push esi
call fcn.004f7380
push esi
mov ebx, eax
call fcn.004f7380
push esi
mov edi, eax
call fcn.004f7380
push esi
mov edx, eax
call fcn.004f7380
cmp edi, ebx
cmovle edx, eax
push edx
push esi
call fcn.004f7420
mov edi, dword [esp + 0x2c]
add esp, 0x18
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f3144
test ebx, ebx
jne 0x4f43c3
mov eax, dword [esp + 0x28]
mov edi, dword [eax + 0x218]
mov edx, dword [edi + 0x288]
mov ecx, edx
mov eax, ecx
shl eax, 0xd
xor ecx, eax
mov eax, ecx
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edi + 0x288], eax
movzx eax, dx
inc eax
push eax
push esi
call fcn.004f7420
mov edi, dword [esp + 0x1c]
jmp 0x4f4d6c
test ebx, ebx
js 0x4f43c3
test edx, edx
js 0x4f43c3
cmp ebx, 3
mov eax, ebx
mov ecx, 3
cmovg eax, ecx
mov dword [esp + 0x60], eax
cmp eax, 1
jb 0x4f4c27
lea edx, [esp + eax*4 + 0x3e4c]
mov edi, eax
push esi
call fcn.004f7380
add esp, 4
mov dword [edx], eax
lea edx, [edx - 4]
sub edi, 1
jne 0x4f4f24
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jmp 0x4f3140
mov ecx, dword [esp + 0x10]
test al, al
je 0x4f3148
cmp dword [esp + 0x50], 0
jle 0x4f4f60
dec dword [esp + 0x50]
jmp 0x4f3144
test edx, edx
je 0x4f43c3
push dword [esp + edx*4 + 0x3e4c]
dec edx
push esi
mov dword [esp + 0x68], edx
call fcn.004f7420
add esp, 8
jmp 0x4f3144
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x10]
cmp eax, dword [esi + 8]
jne 0x4f4fad
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
mov dword [eax], 0xa1
jmp 0x4f3144
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f4fd6
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4fd2
cmp dword [eax], 0
jne 0x4f4fd2
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f4ffa
cmp dword [eax - 4], 2
je 0x4f4ff2
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4fee
cmp dword [eax], 0
jne 0x4f4fee
mov dword [eax], 0xa0
xor edi, edi
jmp 0x4f4ffa
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5018
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5014
cmp dword [eax], 0
jne 0x4f5014
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f5042
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5032
sub eax, 1
jne 0x4f5042
shl ecx, 0x10
jmp 0x4f5042
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
cmp edi, 0x20
jae 0x4f3140
mov dword [esp + edi*4 + 0x3e78], ecx
jmp 0x4f3140
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f5075
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5071
cmp dword [eax], 0
jne 0x4f5071
mov dword [eax], 0xa1
xor eax, eax
jmp 0x4f5099
cmp dword [eax - 4], 2
je 0x4f5091
mov eax, dword [esi + 4]
test eax, eax
je 0x4f508d
cmp dword [eax], 0
jne 0x4f508d
mov dword [eax], 0xa0
xor eax, eax
jmp 0x4f5099
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
cmp eax, 0x20
jae 0x4f3148
push dword [esp + eax*4 + 0x3e78]
push esi
call fcn.004f7420
add esp, 8
jmp 0x4f3144
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 8]
jne 0x4f50d9
mov eax, dword [esi + 4]
test eax, eax
je 0x4f50d5
cmp dword [eax], 0
jne 0x4f50d5
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x4f5104
add ebp, 0xfffffff8
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x4f50f4
sub eax, 1
jne 0x4f5104
shl ebp, 0x10
jmp 0x4f5104
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f5122
mov eax, dword [esi + 4]
test eax, eax
je 0x4f511e
cmp dword [eax], 0
jne 0x4f511e
mov dword [eax], 0xa1
xor ebx, ebx
jmp 0x4f514c
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x4f513c
sub eax, 1
jne 0x4f514c
shl ebx, 0x10
jmp 0x4f514c
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f516a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5166
cmp dword [eax], 0
jne 0x4f5166
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f5194
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x4f5184
sub eax, 1
jne 0x4f5194
shl edx, 0x10
jmp 0x4f5194
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f51b2
mov eax, dword [esi + 4]
test eax, eax
je 0x4f51ae
cmp dword [eax], 0
jne 0x4f51ae
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f51dc
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x4f51cc
sub eax, 1
jne 0x4f51dc
shl edi, 0x10
jmp 0x4f51dc
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esi + 0xc]
cmp ecx, eax
jne 0x4f521b
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
mov dword [eax], 0x82
jmp 0x4f3144
cmp ebx, ebp
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
cmovle edx, edi
mov dword [ecx], edx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3140
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x218]
mov ecx, dword [edx + 0x288]
mov eax, ecx
shl eax, 0xd
movzx edi, cx
xor ecx, eax
mov eax, ecx
inc edi
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edx + 0x288], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x4f44cb
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3140
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f52b9
mov eax, dword [esi + 4]
test eax, eax
je 0x4f52af
cmp dword [eax], 0
jne 0x4f52af
mov dword [eax], 0xa1
mov dword [esp + 0x40], 0
jmp 0x4f52f3
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
sub eax, 1
je 0x4f52dd
sub eax, 1
mov eax, dword [ecx]
je 0x4f52d4
mov dword [esp + 0x40], eax
jmp 0x4f52f3
shl eax, 0x10
mov dword [esp + 0x40], eax
jmp 0x4f52f3
mov ecx, dword [ecx]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov dword [esp + 0x40], ecx
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5317
mov eax, dword [esi + 4]
test eax, eax
je 0x4f530d
cmp dword [eax], 0
jne 0x4f530d
mov dword [eax], 0xa1
mov dword [esp + 0x34], 0
jmp 0x4f534e
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f533b
sub eax, 1
je 0x4f5332
mov dword [esp + 0x34], ecx
jmp 0x4f534e
shl ecx, 0x10
mov dword [esp + 0x34], ecx
jmp 0x4f534e
mov eax, dword [edx]
shr ecx, 0x1f
sub eax, ecx
add eax, 0x2000
sar eax, 0xe
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x78], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x4f53a3
mov eax, dword [esi + 4]
test eax, eax
je 0x4f3140
cmp dword [eax], 0
jne 0x4f3140
mov dword [eax], 0x82
jmp 0x4f3144
mov eax, dword [esp + 0x78]
mov dword [edx], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3144
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 8]
jne 0x4f5409
mov eax, dword [esi + 4]
test eax, eax
je 0x4f53d6
cmp dword [eax], 0
jne 0x4f53d6
mov dword [eax], 0xa1
xor ebx, ebx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x4f51ec
mov ebp, dword [esp + 0x1c]
mov dword [edx], ebx
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3140
add ebp, 0xfffffff8
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x4f5424
sub eax, 1
jne 0x4f5434
shl ebp, 0x10
jmp 0x4f5434
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x4f53d6
mov eax, ebp
mov edi, ebp
sar eax, 1
cmp ebp, 0xa
cmovge edi, eax
push edi
push ebp
call fcn.004b43d0
lea ebx, [edi + 1]
add esp, 8
add ebx, eax
sar ebx, 1
cmp ebx, edi
je 0x4f53d8
nop dword [eax]
push ebx
push ebp
mov edi, ebx
call fcn.004b43d0
inc ebx
add esp, 8
add ebx, eax
sar ebx, 1
cmp ebx, edi
jne 0x4f5460
jmp 0x4f53d8
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5498
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5494
cmp dword [eax], 0
jne 0x4f5494
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f54c2
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f54b2
sub eax, 1
jne 0x4f54c2
shl edx, 0x10
jmp 0x4f54c2
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x4f54e6
mov eax, dword [esi + 4]
test eax, eax
je 0x4f54f6
cmp dword [eax], 0
jne 0x4f54f6
mov dword [eax], 0x82
jmp 0x4f54f6
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
cmp edi, eax
je 0x4f3121
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x14]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3148
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5545
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5541
cmp dword [eax], 0
jne 0x4f5541
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f556f
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f555f
sub eax, 1
jne 0x4f556f
shl edx, 0x10
jmp 0x4f556f
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
push esi
call fcn.004f7380
push edx
push esi
mov ebx, eax
call fcn.004f7420
mov edx, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x4f55b8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4c2b
cmp dword [eax], 0
jne 0x4f4c2b
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [eax], 0x82
jmp 0x4f3144
mov dword [edi], ebx
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f3140
push esi
call fcn.004f73d0
mov ecx, dword [esi + 0xc]
add esp, 4
sub ecx, dword [esi + 8]
sar ecx, 3
test ecx, ecx
je 0x4f3140
test eax, eax
js 0x4f55f9
cmp eax, ecx
jb 0x4f55f7
xor ecx, ecx
jmp 0x4f55fa
sub ecx, eax
dec ecx
push ecx
push esi
call fcn.004f7320
push eax
push esi
call fcn.004f7420
add esp, 0x10
jmp 0x4f3144
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f562e
mov eax, dword [esi + 4]
test eax, eax
je 0x4f562a
cmp dword [eax], 0
jne 0x4f562a
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f5652
cmp dword [eax - 4], 2
je 0x4f564a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5646
cmp dword [eax], 0
jne 0x4f5646
mov dword [eax], 0xa0
xor edx, edx
jmp 0x4f5652
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f5670
mov eax, dword [esi + 4]
test eax, eax
je 0x4f566c
cmp dword [eax], 0
jne 0x4f566c
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f5694
cmp dword [eax - 4], 2
je 0x4f568c
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5688
cmp dword [eax], 0
jne 0x4f5688
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x4f5694
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], 0
mov dword [esp + 0x40], 2
cmp ecx, 2
jl 0x4f3144
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp ecx, eax
jbe 0x4f56e1
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
mov dword [eax], 0x82
jmp 0x4f3144
test edx, edx
jns 0x4f56f0
neg edx
mov eax, edx
cdq
idiv ecx
neg edx
jmp 0x4f56f5
mov eax, edx
cdq
idiv ecx
mov dword [esp + 0x38], edx
test edx, edx
je 0x4f3144
or ebp, 0xffffffff
mov dword [esp + 0x4c], ecx
lea esi, [edx*8]
or edi, ebp
mov dword [esp + 0x3c], esi
lea eax, [ecx*8]
mov esi, dword [esp + 0x94]
lea ebx, [ebp - 7]
cmp ebp, edi
jne 0x4f5751
mov eax, dword [esi + 8]
inc ebp
mov edi, ebp
lea ebx, [ebp*8]
mov edx, dword [ebx + eax]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + eax + 4]
lea eax, [ecx*8]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x38]
add ebx, dword [esp + 0x3c]
add edi, edx
cmp edi, ecx
jl 0x4f5761
sub edi, ecx
sub ebx, eax
jmp 0x4f5769
test edi, edi
jns 0x4f5769
add edi, ecx
add ebx, eax
sub dword [esp + 0x4c], 1
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x34]
mov ecx, dword [ebx + eax]
mov edx, dword [ebx + eax + 4]
mov dword [ebx + eax], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebx + eax + 4], esi
mov esi, dword [esp + 0x94]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x38]
lea eax, [ecx*8]
jne 0x4f5726
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jmp 0x4f3140
test al, al
je case.0x4f3f40.0
cmp byte [esp + 0x33], 0
je case.0x4f3f40.0
push esi
call fcn.004f7380
mov ebp, eax
push esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x3f20], ebp
call fcn.004f7380
mov ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x30]
add esp, 8
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
mov dword [eax + 0x1d4], 0
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je case.0x4f3253.0
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f583d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5839
cmp dword [eax], 0
jne 0x4f5839
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f5867
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x4f5857
sub eax, 1
jne 0x4f5867
shl ecx, 0x10
jmp 0x4f5867
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x24]
mov dword [eax], ecx
mov eax, dword [ebx + 0x24]
mov dword [eax + 4], 0
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5898
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5894
cmp dword [eax], 0
jne 0x4f5894
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f58c2
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f58b2
sub eax, 1
jne 0x4f58c2
shl ecx, 0x10
jmp 0x4f58c2
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [ebx + 0x20]
mov byte [esp + 0x23], 1
add dword [eax], ecx
cmp byte [ebx + 0x2f], 0
jne 0x4f33f6
cmp byte [esp + 0x33], 0
mov ebx, dword [esp + 0x18]
je case.0x4f3f40.0
mov eax, dword [esi + 8]
add edi, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 8], 0
je 0x4f6f9c
test ah, ah
jne 0x4f6f9c
push ebp
lea eax, [esp + 0x134]
push edi
push eax
call fcn.004f1a70
mov ecx, dword [esp + 0x1c]
xorps xmm0, xmm0
mov eax, dword [esp + 0x74]
add esp, 0xc
mov byte [esp + 0x33], 1
mov dword [esp + 0xb4], 0
mov dword [esp + 0xd0], 0
movq qword [esp + 0x108], xmm0
mov dword [esp + 0x110], 0
movups xmmword [esp + 0xf8], xmm0
mov dword [esp + 0xf8], eax
mov word [esp + 0xfc], 0x100
test ecx, ecx
jle 0x4f59dd
mov ebp, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x90]
nop dword [eax]
lea eax, [ecx - 1]
cmp eax, edx
jb 0x4f59ba
test ebp, ebp
je 0x4f59b8
cmp dword [ebp], 0
jne 0x4f59b8
mov dword [ebp], 0x82
xor eax, eax
mov edi, ebx
dec ecx
imul edi, eax
add edi, esi
mov dword [esp + 0x18], edi
test ecx, ecx
jg 0x4f59a0
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x4f5a0e
cmp byte [esp + 0xfc], 0
jne case.0x4f3253.0
push 0
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x64]
lea eax, [esp + 0xb0]
push eax
push esi
push dword [esp + 0x58]
call fcn.004f0840
mov eax, dword [esp + 0x40]
add esp, 0x18
cmp byte [eax + 0x224], 0
jne 0x4f33f6
cmp bl, 0x13
jne 0x4f5a77
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0xd0]
mov ebx, dword [esp + 0x18]
push eax
lea eax, [esp + 0xfc]
push ebx
push eax
call fcn.004f2b50
mov eax, dword [esi + 8]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x4f3148
push 0xf1c
lea eax, [esp + 0x2f38]
push 0
push eax
call fcn.005acba0
mov ecx, dword [esp + 0x50]
xorps xmm0, xmm0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x2f40], ecx
movlpd qword [esp + 0x124], xmm0
mov al, byte [ecx + 0xb8]
mov byte [esp + 0x2f4d], al
mov eax, dword [esp + 0x88]
mov dword [esp + 0x2f50], eax
lea eax, [esp + 0x1f7c]
mov dword [esp + 0x2f44], eax
lea eax, [esp + 0x2e98]
mov dword [esp + 0x2f48], eax
lea eax, [ecx + 4]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xc0]
add eax, dword [esp + 0xdc]
push eax
lea eax, [esp + 0x124]
movlpd qword [esp + 0x130], xmm0
push ebx
push eax
movlpd qword [esp + 0x140], xmm0
call fcn.004f2b50
push 0
push 0
lea eax, [esp + 0x134]
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x2f60]
push eax
call fcn.004f20a0
mov eax, dword [esi + 8]
add esp, 0x30
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x4f5b9b
cmp byte [esp + 0x23], 0
jne 0x4f5b9b
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5b7c
sub eax, 1
jne 0x4f5b8c
shl ecx, 0x10
jmp 0x4f5b8c
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x80]
add eax, ecx
mov ecx, dword [esp + 0x5c]
mov dword [ecx], eax
mov ebx, dword [esp + 0x28]
mov byte [esp + 0x23], 1
cmp byte [ebx + 0x224], 0
jne 0x4f33f6
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5bcf
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5bcb
cmp dword [eax], 0
jne 0x4f5bcb
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f5bf9
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5be9
sub eax, 1
jne 0x4f5bf9
shl ecx, 0x10
jmp 0x4f5bf9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esi + 0xc]
add ebp, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
cmp edx, dword [esi + 8]
jne 0x4f5c34
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5c20
cmp dword [eax], 0
jne 0x4f5c20
mov dword [eax], 0xa1
xor ecx, ecx
add edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
jmp 0x4f3608
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5c5e
sub eax, 1
jne 0x4f5c6e
shl ecx, 0x10
add edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
jmp 0x4f3608
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
jmp 0x4f3608
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x4f5cca
cmp byte [esp + 0x23], 0
jne 0x4f5cca
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5cab
sub eax, 1
jne 0x4f5cbb
shl ecx, 0x10
jmp 0x4f5cbb
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x80]
add eax, ecx
mov ecx, dword [esp + 0x5c]
mov dword [ecx], eax
mov ebx, dword [esp + 0x28]
mov byte [esp + 0x23], 1
cmp byte [ebx + 0x224], 0
jne 0x4f33f6
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5cfe
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5cfa
cmp dword [eax], 0
jne 0x4f5cfa
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f5d28
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5d18
sub eax, 1
jne 0x4f5d28
shl ecx, 0x10
jmp 0x4f5d28
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add edi, ecx
cmp dword [ebx + 0x1d4], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
je 0x4f3615
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x4f3148
mov ebp, dword [esi + 0xc]
xor edi, edi
sub ebp, dword [esi + 8]
sar ebp, 3
mov dword [esp + 0x54], ebp
cmp ebp, 6
jbe 0x4f5e4f
lea ebx, [edi + 6]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f5d95
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5d91
cmp dword [eax], 0
jne 0x4f5d91
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f5dbb
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f5dab
sub eax, 1
jne 0x4f5dbb
shl ecx, 0x10
jmp 0x4f5dbb
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 8]
add eax, ecx
mov ecx, dword [esi + 0xc]
sub ecx, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x3f14], eax
lea eax, [ebx - 5]
sar ecx, 3
cmp eax, ecx
jb 0x4f5df4
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5df0
cmp dword [eax], 0
jne 0x4f5df0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f5e1b
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x4f5e0b
sub eax, 1
jne 0x4f5e1b
shl ecx, 0x10
jmp 0x4f5e1b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
add eax, ecx
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x3f20], eax
lea eax, [esp + 0x138]
push eax
call fcn.004f18f0
add ebx, 2
add esp, 0xc
add edi, 2
cmp ebx, ebp
jb 0x4f5d70
cmp edi, ebp
jae 0x4f60b0
add edi, 2
nop word [eax + eax]
mov ecx, dword [esi + 0xc]
lea eax, [edi - 2]
mov edx, dword [esi + 8]
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x4f5e88
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5e84
cmp dword [eax], 0
jne 0x4f5e84
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f5eaf
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x4f5e9f
sub eax, 1
jne 0x4f5eaf
shl ecx, 0x10
jmp 0x4f5eaf
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x14]
lea eax, [edi - 1]
mov edx, dword [esi + 8]
add ebp, ecx
mov ecx, dword [esi + 0xc]
sub ecx, edx
mov dword [esp + 0x4c], ebp
sar ecx, 3
cmp eax, ecx
jb 0x4f5ee1
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5edd
cmp dword [eax], 0
jne 0x4f5edd
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f5f08
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x4f5ef8
sub eax, 1
jne 0x4f5f08
shl ecx, 0x10
jmp 0x4f5f08
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
add ebx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
mov dword [esp + 0x3c], ebx
cmp edi, eax
jb 0x4f5f37
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5f33
cmp dword [eax], 0
jne 0x4f5f33
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f5f5d
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f5f4d
sub eax, 1
jne 0x4f5f5d
shl ecx, 0x10
jmp 0x4f5f5d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esi + 8]
lea eax, [edi + 1]
add ebp, ecx
mov ecx, dword [esi + 0xc]
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x4f5f87
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5f83
cmp dword [eax], 0
jne 0x4f5f83
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f5fae
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x4f5f9e
sub eax, 1
jne 0x4f5fae
shl ecx, 0x10
jmp 0x4f5fae
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esi + 8]
lea eax, [edi + 2]
add ebx, ecx
mov ecx, dword [esi + 0xc]
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x4f5fd8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5fd4
cmp dword [eax], 0
jne 0x4f5fd4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f5fff
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x4f5fef
sub eax, 1
jne 0x4f5fff
shl ecx, 0x10
jmp 0x4f5fff
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esi + 8]
lea eax, [ecx + ebp]
mov ecx, dword [esi + 0xc]
sub ecx, edx
mov dword [esp + 0x14], eax
sar ecx, 3
lea eax, [edi + 3]
cmp eax, ecx
jb 0x4f602e
mov eax, dword [esi + 4]
test eax, eax
je 0x4f602a
cmp dword [eax], 0
jne 0x4f602a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6055
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x4f6045
sub eax, 1
jne 0x4f6055
shl ecx, 0x10
jmp 0x4f6055
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [ebx + ecx]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x138]
push ebx
push ebp
push dword [esp + 0x4c]
push dword [esp + 0x60]
push eax
call fcn.004f1590
mov eax, dword [esp + 0x30]
add edi, 6
mov ebp, dword [esp + 0x38]
add esp, 0x1c
mov dword [esp + 0x3f14], eax
mov dword [esp + 0x3f18], ebp
lea eax, [edi - 2]
cmp eax, dword [esp + 0x54]
jb 0x4f5e60
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3140
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3140
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 3
mov ecx, edi
and ecx, 0xfffffffd
sub edi, ecx
mov dword [esp + 0x3c], ecx
cmp edi, ecx
jae 0x4f60b4
lea eax, [edi + 3]
lea ebx, [edi + 2]
mov dword [esp + 0x2c], eax
lea edx, [edi + 1]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], edx
sub ecx, edi
test cl, 1
je 0x4f6159
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f611c
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6118
cmp dword [eax], 0
jne 0x4f6118
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6142
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f6132
sub eax, 1
jne 0x4f6142
shl ecx, 0x10
jmp 0x4f6142
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x14]
inc edx
inc ebx
mov dword [esp + 0x40], edx
add ebp, ecx
mov dword [esp + 0x34], ebx
inc edi
inc dword [esp + 0x2c]
jmp 0x4f615d
mov ebp, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f6182
mov eax, dword [esi + 4]
test eax, eax
je 0x4f617e
cmp dword [eax], 0
jne 0x4f617e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f61a8
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f6198
sub eax, 1
jne 0x4f61a8
shl ecx, 0x10
jmp 0x4f61a8
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
add ebx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x4f61d3
mov eax, dword [esi + 4]
test eax, eax
je 0x4f61cf
cmp dword [eax], 0
jne 0x4f61cf
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f61f9
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f61e9
sub eax, 1
jne 0x4f61f9
shl ecx, 0x10
jmp 0x4f61f9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x34]
lea eax, [ecx + ebp]
mov ecx, dword [esi + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x4f6229
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6225
cmp dword [eax], 0
jne 0x4f6225
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f624f
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f623f
sub eax, 1
jne 0x4f624f
shl ecx, 0x10
jmp 0x4f624f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
lea edx, [ebx + ecx]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x4f6279
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6275
cmp dword [eax], 0
jne 0x4f6275
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f62ae
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f6297
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x4f62ae
shl ecx, 0x10
jmp 0x4f62ae
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
push eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
push eax
push edx
push eax
push ebx
lea eax, [esp + 0x144]
push ebp
push eax
call fcn.004f1590
mov edx, dword [esp + 0x5c]
add edi, 4
mov ebx, dword [esp + 0x50]
add edx, 4
add dword [esp + 0x48], 4
add ebx, 4
mov ecx, dword [esp + 0x58]
add esp, 0x1c
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x3f14], eax
mov dword [esp + 0x3f18], ebp
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], ebx
cmp edi, ecx
jb 0x4f60f0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3140
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 3
mov ecx, edi
and ecx, 0xfffffffd
sub edi, ecx
mov dword [esp + 0x3c], ecx
cmp edi, ecx
jae 0x4f60b4
lea eax, [edi + 3]
lea ebx, [edi + 2]
mov dword [esp + 0x2c], eax
lea edx, [edi + 1]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edx
nop
sub ecx, edi
test cl, 1
je 0x4f63b3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f637c
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6378
cmp dword [eax], 0
jne 0x4f6378
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f63a2
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f6392
sub eax, 1
jne 0x4f63a2
shl ecx, 0x10
jmp 0x4f63a2
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc edx
inc ebx
add ebp, ecx
mov dword [esp + 0x34], edx
inc edi
mov dword [esp + 0x38], ebx
inc dword [esp + 0x2c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f63d8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f63d4
cmp dword [eax], 0
jne 0x4f63d4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f63fe
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f63ee
sub eax, 1
jne 0x4f63fe
shl ecx, 0x10
jmp 0x4f63fe
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
add ebx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x4f6429
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6425
cmp dword [eax], 0
jne 0x4f6425
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f644f
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f643f
sub eax, 1
jne 0x4f644f
shl ecx, 0x10
jmp 0x4f644f
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
lea edx, [ebx + ecx]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x38], eax
jb 0x4f6479
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6475
cmp dword [eax], 0
jne 0x4f6475
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f64ae
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f6497
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x4f64ae
shl ecx, 0x10
jmp 0x4f64ae
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [ecx + ebp]
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x4f64dc
mov eax, dword [esi + 4]
test eax, eax
je 0x4f64d8
cmp dword [eax], 0
jne 0x4f64d8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6511
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f64fa
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x4f6511
shl ecx, 0x10
jmp 0x4f6511
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x1c]
push ecx
push eax
push ecx
push edx
push ebp
mov dword [esp + 0x28], eax
lea eax, [esp + 0x144]
push ebx
push eax
call fcn.004f1590
mov edx, dword [esp + 0x50]
add edi, 4
mov ebx, dword [esp + 0x54]
add edx, 4
add dword [esp + 0x48], 4
add ebx, 4
mov ecx, dword [esp + 0x58]
add esp, 0x1c
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x3f14], eax
mov dword [esp + 0x3f18], ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebx
cmp edi, ecx
jb 0x4f6350
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3140
mov ebp, dword [esi + 0xc]
sub ebp, dword [esi + 8]
sar ebp, 3
cmp bl, 0x1f
mov eax, ebp
sete bl
and eax, 0xfffffffd
sub ebp, eax
mov dword [esp + 0x4c], eax
cmp ebp, eax
jae 0x4f69f2
lea eax, [ebp + 4]
mov dword [esp + 0x2c], eax
lea edx, [ebp + 1]
lea eax, [ebp + 3]
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], eax
lea eax, [ebp + 2]
mov dword [esp + 0x34], eax
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
test bl, bl
je 0x4f67b9
cmp ebp, eax
jb 0x4f65ed
mov eax, dword [esi + 4]
test eax, eax
je 0x4f65e9
cmp dword [eax], 0
jne 0x4f65e9
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6613
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x4f6603
sub eax, 1
jne 0x4f6613
shl ecx, 0x10
jmp 0x4f6613
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
lea ebx, [ecx + edi]
mov ecx, dword [esi + 8]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
mov dword [esp + 0x3c], ebx
sar eax, 3
cmp edx, eax
jb 0x4f6647
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6643
cmp dword [eax], 0
jne 0x4f6643
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f666d
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f665d
sub eax, 1
jne 0x4f666d
shl ecx, 0x10
jmp 0x4f666d
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
lea edi, [ebx + ecx]
mov ecx, dword [esi + 8]
sub eax, ecx
mov ebx, dword [esp + 0x34]
sar eax, 3
cmp ebx, eax
jb 0x4f6699
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6695
cmp dword [eax], 0
jne 0x4f6695
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f66bf
mov eax, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + ebx*8]
sub eax, 1
je 0x4f66af
sub eax, 1
jne 0x4f66bf
shl ecx, 0x10
jmp 0x4f66bf
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
add edx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x38], eax
jb 0x4f66ec
mov eax, dword [esi + 4]
test eax, eax
je 0x4f66e8
cmp dword [eax], 0
jne 0x4f66e8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6721
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f670a
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x4f6721
shl ecx, 0x10
jmp 0x4f6721
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edx + ecx]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
sub eax, ebp
cmp eax, 5
jne 0x4f67ae
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x4f675a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6756
cmp dword [eax], 0
jne 0x4f6756
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f678f
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f6778
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x4f678f
shl ecx, 0x10
jmp 0x4f678f
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc dword [esp + 0x40]
inc ebx
inc dword [esp + 0x38]
add ecx, edi
inc dword [esp + 0x2c]
inc ebp
mov dword [esp + 0x34], ebx
xor bl, bl
mov dword [esp + 0x14], ecx
jmp 0x4f6993
mov dword [esp + 0x14], edi
xor bl, bl
jmp 0x4f6993
mov dword [esp + 0x3c], edi
cmp ebp, eax
jb 0x4f67d7
mov eax, dword [esi + 4]
test eax, eax
je 0x4f67d3
cmp dword [eax], 0
jne 0x4f67d3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f67fd
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x4f67ed
sub eax, 1
jne 0x4f67fd
shl ecx, 0x10
jmp 0x4f67fd
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 3
cmp edx, eax
jb 0x4f682c
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6828
cmp dword [eax], 0
jne 0x4f6828
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6852
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f6842
sub eax, 1
jne 0x4f6852
shl ecx, 0x10
jmp 0x4f6852
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esi + 0xc]
add edi, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
mov ebx, dword [esp + 0x34]
sar eax, 3
cmp ebx, eax
jb 0x4f687d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6879
cmp dword [eax], 0
jne 0x4f6879
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f68a3
mov eax, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + ebx*8]
sub eax, 1
je 0x4f6893
sub eax, 1
jne 0x4f68a3
shl ecx, 0x10
jmp 0x4f68a3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x54]
mov eax, dword [esi + 0xc]
add edx, ecx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x38], eax
jb 0x4f68d0
mov eax, dword [esi + 4]
test eax, eax
je 0x4f68cc
cmp dword [eax], 0
jne 0x4f68cc
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6905
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f68ee
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x4f6905
shl ecx, 0x10
jmp 0x4f6905
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edi + ecx]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
sub eax, ebp
cmp eax, 5
jne 0x4f698d
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x4f693e
mov eax, dword [esi + 4]
test eax, eax
je 0x4f693a
cmp dword [eax], 0
jne 0x4f693a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6973
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f695c
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x4f6973
shl ecx, 0x10
jmp 0x4f6973
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc dword [esp + 0x40]
add ecx, edx
inc dword [esp + 0x38]
inc ebx
inc ebp
mov dword [esp + 0x1c], ecx
inc dword [esp + 0x2c]
mov dword [esp + 0x34], ebx
jmp 0x4f6991
mov dword [esp + 0x1c], edx
mov bl, 1
push dword [esp + 0x1c]
lea eax, [esp + 0x134]
push dword [esp + 0x18]
push edx
push edi
push dword [esp + 0x64]
push dword [esp + 0x50]
push eax
call fcn.004f1590
mov edx, dword [esp + 0x5c]
add ebp, 4
add dword [esp + 0x50], 4
add edx, 4
add dword [esp + 0x54], 4
add esp, 0x1c
add dword [esp + 0x2c], 4
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3f14], edi
mov dword [esp + 0x3f18], eax
mov dword [esp + 0x40], edx
cmp ebp, dword [esp + 0x4c]
jb 0x4f65c0
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f3144
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x4f6a1c
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
movzx edx, cl
jmp 0x4f6a2f
mov eax, dword [ebx]
test eax, eax
je 0x4f6a2d
cmp dword [eax], 0
jne 0x4f6a2d
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x4f6a4d
mov cl, byte [eax]
inc eax
shl edx, 8
mov dword [ebx + 0xc], eax
movzx eax, cl
movsx edx, dx
or edx, eax
jmp 0x4f3109
mov eax, dword [ebx]
test eax, eax
je 0x4f6a5e
cmp dword [eax], 0
jne 0x4f6a5e
mov dword [eax], 0x55
shl edx, 8
xor eax, eax
movsx edx, dx
or edx, eax
jmp 0x4f3109
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x4f3140
cmp bl, 0xf6
ja 0x4f6acc
mov ecx, dword [esi + 0x10]
lea edi, [edx - 0x8b]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x4f6bb5
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
mov dword [eax], 0x82
jmp 0x4f3144
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
cmp bl, 0xfa
ja 0x4f6b47
shl edx, 8
cmp eax, ecx
jae 0x4f6aed
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx eax, cl
jmp 0x4f6b00
mov eax, dword [edi]
test eax, eax
je 0x4f6afe
cmp dword [eax], 0
jne 0x4f6afe
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
lea edi, [eax - 0xf694]
mov eax, dword [esi + 8]
add edi, edx
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x4f6bb5
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
mov dword [eax], 0x82
jmp 0x4f3144
cmp bl, 0xfe
ja 0x4f6bbc
shl edx, 8
cmp eax, ecx
jae 0x4f6b5e
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx eax, cl
jmp 0x4f6b71
mov eax, dword [edi]
test eax, eax
je 0x4f6b6f
cmp dword [eax], 0
jne 0x4f6b6f
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edi, 0xfa94
sub edi, edx
mov edx, dword [esi + 0xc]
sub edi, eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x4f6bb5
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
mov dword [eax], 0x82
jmp 0x4f3144
mov dword [edx], edi
jmp 0x4f6cd7
cmp eax, ecx
jae 0x4f6bcb
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx edx, cl
jmp 0x4f6bde
mov eax, dword [edi]
test eax, eax
je 0x4f6bdc
cmp dword [eax], 0
jne 0x4f6bdc
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jae 0x4f6bf1
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx ebx, cl
jmp 0x4f6c04
mov eax, dword [edi]
test eax, eax
je 0x4f6c02
cmp dword [eax], 0
jne 0x4f6c02
mov dword [eax], 0x55
xor ebx, ebx
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jae 0x4f6c17
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx edi, cl
jmp 0x4f6c2a
mov eax, dword [edi]
test eax, eax
je 0x4f6c28
cmp dword [eax], 0
jne 0x4f6c28
mov dword [eax], 0x55
xor edi, edi
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x4f6c49
mov ebp, dword [esp + 0x18]
mov cl, byte [eax]
inc eax
mov dword [ebp + 0xc], eax
mov ebp, dword [esp + 0x1c]
movzx eax, cl
jmp 0x4f6c5c
mov eax, dword [ecx]
test eax, eax
je 0x4f6c5a
cmp dword [eax], 0
jne 0x4f6c5a
mov dword [eax], 0x55
xor eax, eax
shl edx, 8
or edx, ebx
shl edx, 8
or edx, edi
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je 0x4f6cf2
cmp edx, 0x7d00
jg 0x4f6c85
cmp edx, 0xffff8300
jge 0x4f6c9a
mov ecx, dword [esp + 0x64]
test cl, cl
movzx eax, cl
mov ecx, 1
cmove eax, ecx
mov byte [esp + 0x64], al
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x4f6cd5
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
mov dword [eax], 0x82
jmp 0x4f3144
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x4f3144
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov ebx, dword [esp + 0x18]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
cmp edi, eax
jne 0x4f550e
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
test eax, eax
je 0x4f3148
cmp dword [eax], 0
jne 0x4f3148
mov dword [eax], 0x82
jmp 0x4f3144
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x2f], 0
je 0x4f6d45
mov eax, 0x12
jmp 0x4f33fa
cmp dword [ecx + 0x244], 0
jne 0x4f6d64
mov eax, dword [edx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x4f6d64
mov eax, 0x12
jmp 0x4f33fa
mov eax, dword [ecx + 0x20]
add ebx, dword [eax]
mov eax, dword [edx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x4f6d95
push ebp
push ecx
call fcn.004f7a70
push edi
push dword [esp + 0x34]
mov ebp, eax
call fcn.004f7a70
mov ecx, dword [esp + 0x38]
mov edi, eax
add esp, 0x10
mov dword [esp + 0x3c], edi
test ebp, ebp
js 0x4f43c3
test edi, edi
js 0x4f43c3
cmp byte [ecx + 0x2e], 0
je 0x4f6e5a
mov eax, dword [ecx + 8]
mov dword [esp + 0x78], eax
push 2
mov eax, dword [eax + 0x9c]
mov edi, dword [eax]
push edi
mov dword [esp + 0xa4], edi
call fcn.004b4e80
add esp, 8
test eax, eax
jne 0x4f33fa
mov edi, dword [edi + 0x58]
mov eax, 0x202
sub ebx, dword [esp + 0x70]
push ebx
mov word [edi + 4], ax
mov eax, dword [esp + 0x40]
mov dword [edi + 0x20], eax
mov eax, 2
mov dword [edi], ebp
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov word [edi + 0x24], ax
call fcn.004b7e00
push dword [esp + 0x78]
sar eax, 0x10
mov dword [edi + 0x28], eax
call fcn.004b7e00
mov ecx, dword [esp + 0x80]
add esp, 8
mov edx, dword [esp + 0x9c]
sar eax, 0x10
mov dword [edi + 0x2c], eax
mov dword [ecx + 0x80], 2
mov eax, dword [edx + 0x34]
mov dword [ecx + 0x84], eax
mov dword [ecx + 0x48], 0x636f6d70
mov dword [edx + 0x54], 2
jmp 0x4f33f6
push dword [ecx + 0xc]
call fcn.004b4fa0
lea eax, [esp + 0x3e54]
push eax
push ebp
push dword [esp + 0x34]
call fcn.004f0ef0
add esp, 0x10
test eax, eax
jne 0x4f33fa
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x20]
mov ebp, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x98]
push eax
push 0
push 0
push 1
push dword [esp + 0x94]
lea eax, [esp + 0x3e64]
mov dword [esp + 0x60], ecx
push dword [esp + 0x80]
push eax
push dword [esp + 0x60]
call fcn.004f2bd0
lea eax, [esp + 0x3e70]
push eax
push dword [esp + 0x4c]
call fcn.004f0da0
mov edx, dword [esp + 0x50]
add esp, 0x28
cmp byte [esp + 0x23], 0
jne 0x4f6f07
mov eax, dword [edx + 0x20]
mov ebp, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x24]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
mov eax, dword [edx + 0x20]
mov dword [eax], 0
mov eax, dword [edx + 0x20]
mov dword [eax + 4], 0
lea eax, [esp + 0x3e50]
push eax
push edi
push edx
call fcn.004f0ef0
add esp, 0xc
test eax, eax
jne 0x4f33fa
sub ebx, dword [esp + 0x70]
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x78]
lea eax, [esp + 0x3e58]
push ebx
push 1
push dword [esp + 0x94]
push dword [esp + 0x80]
push eax
push dword [esp + 0x60]
call fcn.004f2bd0
mov ebx, dword [esp + 0x48]
lea eax, [esp + 0x3e70]
push eax
push ebx
call fcn.004f0da0
mov eax, dword [ebx + 0x20]
add esp, 0x28
mov ecx, dword [esp + 0x3c]
mov dword [eax], ebp
mov dword [eax + 4], ecx
mov eax, dword [ebx + 0x24]
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], ecx
jmp 0x4f33f6
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
je 0x4f6faf
cmp eax, 5
jne 0x4f6fce
cmp byte [esp + 0x23], 0
jne 0x4f6fce
push 0
push esi
call fcn.004f7320
mov ecx, dword [esp + 0x64]
add esp, 8
add eax, dword [esp + 0x80]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x224], 0
jne 0x4f33f6
cmp byte [esp + 0x2ebc], 0
je 0x4f7063
push dword [esp + 0x2f08]
lea eax, [esp + 0x134]
mov byte [esp + 0x2ec1], 1
push dword [esp + 0x2f08]
push eax
call fcn.004f18f0
add esp, 0xc
cmp byte [esp + 0x2f0c], 0
je 0x4f7049
push 1
push dword [esp + 0x2ef4]
lea eax, [esp + 0x2eec]
push dword [esp + 0x2ef4]
push eax
lea eax, [esp + 0x148]
push eax
lea eax, [esp + 0x144]
push eax
call fcn.004f1bc0
add esp, 0x18
mov byte [esp + 0x2ebf], 1
mov word [esp + 0x2ebc], 0
mov byte [esp + 0x2f0c], 0
cmp byte [ebx + 9], 0
jne 0x4f33f6
cmp byte [ebx + 8], 0
jne 0x4f33f6
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x4f33f6
cmp byte [esp + 0x3f10], 0
je 0x4f709d
mov eax, 0x12
jmp 0x4f33fa
push esi
call fcn.004f73d0
push esi
mov edx, eax
call fcn.004f73d0
push esi
mov edi, eax
call fcn.004f7380
push esi
mov ebx, eax
call fcn.004f7380
mov ebp, eax
lea eax, [esp + 0x3e60]
push eax
push edx
push dword [esp + 0x40]
call fcn.004f0e20
add esp, 0x1c
test eax, eax
jne 0x4f33fa
lea eax, [esp + 0x78]
push eax
push ebx
push ebp
mov ebp, dword [esp + 0x50]
lea eax, [esp + 0x3e5c]
push 1
push dword [esp + 0x94]
push dword [esp + 0x80]
push eax
push ebp
call fcn.004f2bd0
mov ebx, dword [esp + 0x48]
lea eax, [esp + 0x3e70]
push eax
push ebx
call fcn.004f0d70
lea eax, [esp + 0x3e78]
push eax
push edi
push ebx
call fcn.004f0e20
add esp, 0x34
test eax, eax
jne 0x4f33fa
lea eax, [esp + 0x78]
push eax
push 0
push 0
push 1
push dword [esp + 0x94]
lea eax, [esp + 0x3e64]
push dword [esp + 0x80]
push eax
push ebp
call fcn.004f2bd0
lea eax, [esp + 0x3e70]
push eax
push ebx
call fcn.004f0d70
add esp, 0x28
jmp 0x4f33f6
xor eax, eax
jmp 0x4f33fe