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

Disassembly:
mov eax, 0x3eec
call fcn.005ac2c0
mov eax, dword [0x68f500]
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.005adb30
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.005adb30
mov eax, dword [esp + 0x84]
movaps xmm0, xmmword [0x5fc410]
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.005adb30
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.005adb30
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.005adb30
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 0x4f3e6b
test esi, esi
jmp 0x4f3e6f
mov esi, ebx
test ebx, ebx
jns 0x4f3e73
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 0x4f3edc
mov eax, dword [ecx + 0x214]
mov ebx, dword [eax + 0x614]
jmp 0x4f3ee1
mov ebx, 0x30
lea eax, [esp + 0xa0]
mov dword [esp + 0x74], ebx
push eax
push 0x14
push edi
call fcn.004bb3d0
add esp, 0xc
mov esi, eax
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x94], esi
jne 0x4f3f43
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.004bb420
add esp, 0x18
mov dword [esi + 8], eax
cmp dword [esp + 0xa0], 0
je 0x4f3f4f
push esi
push edi
call fcn.004bb3b0
add esp, 8
xor esi, esi
xor edi, edi
lea eax, [esi + 0x40]
jmp 0x4f42ce
mov dword [esi + 0xc], eax
lea eax, [esp + 0xdc]
push 0x11
push eax
mov dword [esi + 0x10], ebx
call fcn.004f0670
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 0x4f803c
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 0x4f4018
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edi, eax
jne 0x4f793d
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
mov ecx, dword [esp + 0x10]
jne 0x4f4018
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 0x4f4035
test ecx, ecx
mov ebx, 0xb
mov eax, 0xe
cmove ebx, eax
mov dword [esp + 0x34], ebx
jmp 0x4f4062
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
mov bl, cl
mov dword [esp + 0x34], ebx
cmp cl, 0xb
je 0x4f404b
cmp cl, 0xe
jne 0x4f405e
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 0x4f40ff
test ah, ah
jne 0x4f40b0
cmp bl, 1
je 0x4f40b0
cmp bl, 3
je 0x4f40b0
cmp bl, 0xd
je 0x4f40b0
cmp bl, 0xa
je 0x4f40b0
cmp bl, 0xb
je 0x4f40b0
cmp bl, 0xc
je 0x4f40b0
cmp bl, 0xe
je 0x4f40b0
cmp bl, 0x20
jae 0x4f40b0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4018
mov edx, dword [esp + 0x60]
test edx, edx
jle 0x4f40db
cmp bl, 0xa
je 0x4f40db
cmp bl, 0xb
je 0x4f40db
cmp bl, 0xc
je 0x4f40db
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 0x4f40ff
cmp bl, 0x20
jae 0x4f40ff
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 0x4f42c6
sub dword [esp + 0x70], 1
je 0x4f5293
movzx edx, bl
cmp edx, 0x1f
ja case.default.0x4f4123
jmp dword [edx*4 + 0x4f8044]
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 9], 0
je case.0x4f4123.0
cmp byte [ebx + 0x5d], 0
jne 0x4f5293
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f416c
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4158
cmp dword [eax], 0
jne 0x4f4158
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 0x4f4018
cmp dword [eax - 4], 2
je 0x4f4198
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4184
cmp dword [eax], 0
jne 0x4f4184
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 0x4f4018
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x4f4123.0
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4018
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 9], 0
je case.0x4f4123.0
cmp dword [ebx + 0x60], 0
je 0x4f5293
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 0x4f4213
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 0x4f42ca
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f4231
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4f422d
cmp dword [ecx], 0
jne 0x4f422d
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x4f4255
cmp dword [eax - 4], 2
je 0x4f424d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4249
cmp dword [eax], 0
jne 0x4f4249
mov dword [eax], 0xa0
xor eax, eax
jmp 0x4f4255
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x74]
ja 0x4f5293
push eax
push esi
push edi
call fcn.004f11d0
mov byte [ebx + 0x5d], 1
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x4f4010
test al, al
jne 0x4f428c
cmp byte [esp + 0xfc], al
jne case.0x4f4123.0
xor eax, eax
jmp 0x4f4296
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.004f1710
mov eax, dword [esp + 0x40]
add esp, 0x18
cmp byte [eax + 0x224], 0
je 0x4f6c12
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x4f42dd
cmp dword [ebx], 0
jne 0x4f42dd
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.004bb3b0
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.004bb3b0
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.004bb3b0
push edi
push dword [esp + 0xf8]
mov dword [esp + 0xf8], 0
call fcn.004bb3b0
add esp, 0x20
test esi, esi
je 0x4f43ca
push dword [esi + 8]
mov edi, dword [esi]
push edi
call fcn.004bb3b0
push esi
push edi
mov dword [esi + 8], 0
call fcn.004bb3b0
add esp, 0x10
mov ecx, dword [esp + 0x3ef8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005ab3d6
add esp, 0x3eec
ret
test al, al
jne 0x4f4408
cmp byte [esp + 0xfc], al
jne case.0x4f4123.0
xor eax, eax
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xac]
jmp 0x4f42a3
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 0x4f42a3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x4f446d
cmp byte [esp + 0x23], 0
jne 0x4f446d
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x4f444e
sub eax, 1
jne 0x4f445e
shl ecx, 0x10
jmp 0x4f445e
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 0x4f42c6
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f44a1
mov eax, dword [esi + 4]
test eax, eax
je 0x4f449d
cmp dword [eax], 0
jne 0x4f449d
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f44cb
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f44bb
sub eax, 1
jne 0x4f44cb
shl ecx, 0x10
jmp 0x4f44cb
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 0x4f6c12
push ebp
lea eax, [esp + 0x134]
push edi
push eax
call fcn.004f2940
mov eax, dword [esi + 8]
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x4f4018
mov ebp, dword [esi + 0xc]
xor ebx, ebx
sub ebp, dword [esi + 8]
sar ebp, 3
test ebp, ebp
je 0x4f78c2
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 0x4f454d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4549
cmp dword [eax], 0
jne 0x4f4549
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x4f4573
mov eax, dword [edx + ebx*8 + 4]
mov edi, dword [edx + ebx*8]
sub eax, 1
je 0x4f4563
sub eax, 1
jne 0x4f4573
shl edi, 0x10
jmp 0x4f4573
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 0x4f45a4
mov eax, dword [esi + 4]
test eax, eax
je 0x4f45a0
cmp dword [eax], 0
jne 0x4f45a0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f45cb
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x4f45bb
sub eax, 1
jne 0x4f45cb
shl ecx, 0x10
jmp 0x4f45cb
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.004f27c0
add ebx, 2
add esp, 0xc
cmp ebx, ebp
jb 0x4f4520
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4014
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 0x4f46bd
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f464a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4646
cmp dword [eax], 0
jne 0x4f4646
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f4670
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f4660
sub eax, 1
jne 0x4f4670
shl ecx, 0x10
jmp 0x4f4670
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test bl, bl
je 0x4f4687
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x3f14], eax
jmp 0x4f469c
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.004f27c0
inc edi
add esp, 0xc
cmp edi, ebp
jb 0x4f4625
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4010
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 0x4f4952
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 0x4f471d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4719
cmp dword [eax], 0
jne 0x4f4719
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f4744
mov eax, dword [edx + ebx*8 - 0xc]
mov ecx, dword [edx + ebx*8 - 0x10]
sub eax, 1
je 0x4f4734
sub eax, 1
jne 0x4f4744
shl ecx, 0x10
jmp 0x4f4744
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 0x4f4778
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4774
cmp dword [eax], 0
jne 0x4f4774
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f479f
mov eax, dword [edx + ebx*8 - 4]
mov ecx, dword [edx + ebx*8 - 8]
sub eax, 1
je 0x4f478f
sub eax, 1
jne 0x4f479f
shl ecx, 0x10
jmp 0x4f479f
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 0x4f47d0
mov eax, dword [esi + 4]
test eax, eax
je 0x4f47cc
cmp dword [eax], 0
jne 0x4f47cc
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f47f6
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x4f47e6
sub eax, 1
jne 0x4f47f6
shl ecx, 0x10
jmp 0x4f47f6
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 0x4f482a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4826
cmp dword [eax], 0
jne 0x4f4826
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f4851
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x4f4841
sub eax, 1
jne 0x4f4851
shl ecx, 0x10
jmp 0x4f4851
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 0x4f487d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4879
cmp dword [eax], 0
jne 0x4f4879
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x4f48a4
mov eax, dword [edx + ebx*8 + 0x14]
mov ecx, dword [edx + ebx*8 + 0x10]
sub eax, 1
je 0x4f4894
sub eax, 1
jne 0x4f48a4
shl ecx, 0x10
jmp 0x4f48a4
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 0x4f48d0
mov eax, dword [esi + 4]
test eax, eax
je 0x4f48cc
cmp dword [eax], 0
jne 0x4f48cc
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f48f7
mov eax, dword [edx + ebx*8 + 0x1c]
mov ecx, dword [edx + ebx*8 + 0x18]
sub eax, 1
je 0x4f48e7
sub eax, 1
jne 0x4f48f7
shl ecx, 0x10
jmp 0x4f48f7
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.004f2460
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 0x4f46f0
mov ebx, dword [esp + 0x34]
cmp bl, 0x18
jne 0x4f4a3d
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp ebp, eax
jb 0x4f4988
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4984
cmp dword [eax], 0
jne 0x4f4984
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x4f49ae
mov eax, dword [edi + ebp*8 + 4]
mov edx, dword [edi + ebp*8]
sub eax, 1
je 0x4f499e
sub eax, 1
jne 0x4f49ae
shl edx, 0x10
jmp 0x4f49ae
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 0x4f49e1
mov eax, dword [esi + 4]
test eax, eax
je 0x4f49dd
cmp dword [eax], 0
jne 0x4f49dd
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f4a07
mov ecx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
sub eax, 1
je 0x4f49f7
sub eax, 1
jne 0x4f4a07
shl ecx, 0x10
jmp 0x4f4a07
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.004f27c0
mov eax, dword [esi + 8]
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4014
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4014
test al, al
je case.0x4f4123.0
cmp byte [esp + 0x2ebc], 0
je 0x4f4adc
push dword [esp + 0x2f08]
lea eax, [esp + 0x134]
mov byte [esp + 0x2ec1], 1
push dword [esp + 0x2f08]
push eax
call fcn.004f27c0
add esp, 0xc
cmp byte [esp + 0x2f0c], 0
je 0x4f4ac2
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.004f2a90
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 0x4f4018
cmp ecx, 0x10
jg 0x4f5293
inc ecx
cmp ecx, dword [esp + 0x8c]
jb 0x4f4b1f
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4f4b1d
cmp dword [eax], 0
jne 0x4f4b1d
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 0x4f4b4f
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4b4b
cmp dword [eax], 0
jne 0x4f4b4b
mov dword [eax], 0xa1
xor eax, eax
jmp 0x4f4b73
cmp dword [eax - 4], 2
je 0x4f4b6b
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4b67
cmp dword [eax], 0
jne 0x4f4b67
mov dword [eax], 0xa0
xor eax, eax
jmp 0x4f4b73
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 0x4f4ba4
mov ecx, dword [edx + 0x268]
test ecx, ecx
je 0x4f4ba4
push ecx
push eax
call fcn.004baf70
mov edx, dword [esp + 0x30]
add esp, 8
test eax, eax
je 0x4f4ba1
mov eax, dword [eax]
jmp 0x4f4ba4
or eax, 0xffffffff
cmp bl, 0x1d
xorps xmm0, xmm0
mov ebx, dword [esp + 0x18]
movups xmmword [ebx], xmm0
je 0x4f4c49
mov ecx, dword [edx + 0x234]
add ecx, eax
cmp ecx, dword [edx + 0x22c]
jb 0x4f4bd1
mov eax, 1
jmp 0x4f4c7e
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 0x4f4c2d
mov eax, dword [eax + 0x264]
test eax, eax
je 0x4f4c0b
test ecx, ecx
je 0x4f4c07
mov eax, dword [eax + edx]
add eax, ecx
jmp 0x4f4c37
xor eax, eax
jmp 0x4f4c37
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 0x4f4c7c
mov ecx, dword [edx + 0x238]
add ecx, eax
cmp ecx, dword [edx + 0x230]
jb 0x4f4c60
mov eax, 1
jmp 0x4f4c7e
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 0x4f5293
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x4f4018
cmp ecx, 1
jl 0x4f5293
dec ecx
mov ebx, ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x8c]
jb 0x4f4cc5
mov edx, dword [esp + 0x88]
test edx, edx
je 0x4f4cc3
cmp dword [edx], 0
jne 0x4f4cc3
mov dword [edx], 0x82
xor ebx, ebx
imul ebx, dword [esp + 0x90]
add ebx, dword [esp + 0x24]
mov dword [esp + 0x18], ebx
jmp 0x4f4018
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x4f4cee
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
jmp 0x4f4d01
mov eax, dword [ebx]
test eax, eax
je 0x4f4cff
cmp dword [eax], 0
jne 0x4f4cff
mov dword [eax], 0x55
xor cl, cl
movzx eax, cl
add eax, 0xfffffff8
mov byte [esp + 0x5b], cl
cmp eax, 0x1d
ja case.0x4f4d1b.9
movzx eax, byte [eax + 0x4f80dc]
jmp dword [eax*4 + 0x4f80c4]
push 0
push 0x5fbdc0
jmp 0x4f4d88
push 0
push 0x5fbdcc
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x3f24]
push eax
lea eax, [esp + 0x3f24]
push eax
push esi
call fcn.004f1400
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 0x4f4018
push 0
push 0x5fbdd8
jmp 0x4f4d88
push 1
push 0x5fbde4
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x3f24]
push eax
lea eax, [esp + 0x3f24]
push eax
push esi
call fcn.004f1400
mov ebp, dword [esp + 0x3f30]
add esp, 0x18
mov edi, dword [esp + 0x3f14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], edi
jmp 0x4f4014
mov eax, dword [esp + 0x44]
cmp byte [eax + 9], 0
jne case.0x4f4e10.0
cmp cl, 0x26
jae case.0x4f4e10.0
mov al, byte [eax + 8]
mov edx, dword [esp + 0x60]
test al, al
je 0x4f4e04
test edx, edx
jle 0x4f4e04
cmp cl, 0x11
je 0x4f4e04
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x4f4018
movzx ecx, cl
cmp ecx, 0x21
ja case.0x4f4e10.0
jmp dword [ecx*4 + 0x4f80fc]
test al, al
je case.0x4f4e10.0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x4f4e44
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4e40
cmp dword [eax], 0
jne 0x4f4e40
mov dword [eax], 0x82
xor edi, edi
jmp 0x4f4e68
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x4f4e58
sub eax, 1
jne 0x4f4e68
shl edi, 0x10
jmp 0x4f4e68
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 0x4f4e8e
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4e8a
cmp dword [eax], 0
jne 0x4f4e8a
mov dword [eax], 0x82
xor ebx, ebx
jmp 0x4f4eb3
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x10]
sub eax, 1
je 0x4f4ea3
sub eax, 1
jne 0x4f4eb3
shl ebx, 0x10
jmp 0x4f4eb3
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 0x4f4ed9
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4ed5
cmp dword [eax], 0
jne 0x4f4ed5
mov dword [eax], 0x82
xor edx, edx
jmp 0x4f4efe
mov eax, dword [ecx + 0x24]
mov edx, dword [ecx + 0x20]
sub eax, 1
je 0x4f4eee
sub eax, 1
jne 0x4f4efe
shl edx, 0x10
jmp 0x4f4efe
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 0x4f4f24
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4f20
cmp dword [eax], 0
jne 0x4f4f20
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f4f49
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub eax, 1
je 0x4f4f39
sub eax, 1
jne 0x4f4f49
shl ecx, 0x10
jmp 0x4f4f49
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 0x4f4f6d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4f80
cmp dword [eax], 0
jne 0x4f4f80
mov dword [eax], 0x82
jmp 0x4f4f80
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 0x4f4fa6
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4fa2
cmp dword [eax], 0
jne 0x4f4fa2
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f4fcb
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x18]
sub eax, 1
je 0x4f4fbb
sub eax, 1
jne 0x4f4fcb
shl ecx, 0x10
jmp 0x4f4fcb
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 0x4f4fef
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5000
cmp dword [eax], 0
jne 0x4f5000
mov dword [eax], 0x82
jmp 0x4f5000
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 0x4f5012
mov eax, dword [eax]
jmp 0x4f5015
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.004f1710
add esp, 0x18
cmp byte [ebx + 0x224], 0
jne 0x4f42c6
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 0x4f4018
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5084
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5080
cmp dword [eax], 0
jne 0x4f5080
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f50ae
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f509e
sub eax, 1
jne 0x4f50ae
shl edx, 0x10
jmp 0x4f50ae
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 0x4f50d7
mov eax, dword [esi + 4]
test eax, eax
je 0x4f51b9
cmp dword [eax], 0
jne 0x4f51b9
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f3fd9
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov ecx, dword [edi]
sub eax, 1
je 0x4f50f1
sub eax, 1
jne 0x4f5101
shl ecx, 0x10
jmp 0x4f5101
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
je 0x4f51b9
test edx, edx
je 0x4f51b9
mov edx, 1
jmp 0x4f3fd9
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5139
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5135
cmp dword [eax], 0
jne 0x4f5135
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f5163
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f5153
sub eax, 1
jne 0x4f5163
shl edx, 0x10
jmp 0x4f5163
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 0x4f517f
mov eax, dword [esi + 4]
test eax, eax
je 0x4f51b1
cmp dword [eax], 0
jne 0x4f51b1
mov dword [eax], 0xa1
jmp 0x4f51b1
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov ecx, dword [edi]
sub eax, 1
je 0x4f5199
sub eax, 1
jne 0x4f51a9
shl ecx, 0x10
jmp 0x4f51a9
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
test ecx, ecx
jne 0x4f5111
test edx, edx
jne 0x4f5111
xor edx, edx
jmp 0x4f3fd9
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f51de
mov eax, dword [esi + 4]
test eax, eax
je 0x4f51da
cmp dword [eax], 0
jne 0x4f51da
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f5208
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f51f8
sub eax, 1
jne 0x4f5208
shl edx, 0x10
jmp 0x4f5208
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 0x4f3ff1
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 0x4f4018
test al, al
je case.0x4f4e10.0
mov eax, dword [esp + 0x28]
push esi
mov edx, dword [eax + 4]
call fcn.004f82a0
mov edi, eax
push esi
mov dword [esp + 0x44], edi
call fcn.004f82a0
push esi
mov ebp, eax
call fcn.004f8250
push esi
mov dword [esp + 0x84], eax
call fcn.004f8250
push esi
mov ebx, eax
call fcn.004f8250
add esp, 0x14
mov dword [esp + 0x70], eax
cmp byte [esp + 0x3f10], 0
je 0x4f7c01
mov eax, 0x12
jmp 0x4f42ca
test al, al
je case.0x4f4e10.0
push esi
call fcn.004f8250
mov edx, dword [esp + 0x2c]
push esi
mov ecx, dword [edx + 0x24]
mov dword [ecx + 4], eax
call fcn.004f8250
mov ecx, dword [edx + 0x24]
push esi
mov dword [ecx], eax
call fcn.004f8250
push esi
mov edx, eax
call fcn.004f8250
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 0x4f42c6
cmp byte [esp + 0x33], 0
mov ecx, dword [esp + 0x10]
je 0x4f6c1a
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 0x4f4018
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp edx, edi
jne 0x4f535f
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5347
cmp dword [eax], 0
jne 0x4f5347
mov dword [eax], 0xa1
xor ecx, ecx
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
push eax
push esi
call fcn.004f82f0
add esp, 8
jmp 0x4f4010
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5379
sub eax, 1
jne 0x4f5389
shl ecx, 0x10
jmp 0x4f5389
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
cmp ecx, reloc.WS2_32.dll_accept
jge 0x4f5349
mov eax, dword [esi + 0x10]
lea eax, [edi + eax*8]
cmp edx, eax
jne 0x4f53b4
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4010
cmp dword [eax], 0
jne 0x4f4010
jmp 0x4f4005
mov dword [edx], accept
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f4010
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x4f53eb
mov eax, dword [esi + 4]
test eax, eax
je 0x4f53e7
cmp dword [eax], 0
jne 0x4f53e7
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f5415
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov edi, dword [edi]
sub eax, 1
je 0x4f5405
sub eax, 1
jne 0x4f5415
shl edi, 0x10
jmp 0x4f5415
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 0x4f5433
mov eax, dword [esi + 4]
test eax, eax
je 0x4f542f
cmp dword [eax], 0
jne 0x4f542f
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f545d
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x4f544d
sub eax, 1
jne 0x4f545d
shl edx, 0x10
jmp 0x4f545d
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 0x4f5492
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
jmp 0x4f4005
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 0x4f4018
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x4f54d0
mov eax, dword [esi + 4]
test eax, eax
je 0x4f54cc
cmp dword [eax], 0
jne 0x4f54cc
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f54fa
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov edi, dword [edi]
sub eax, 1
je 0x4f54ea
sub eax, 1
jne 0x4f54fa
shl edi, 0x10
jmp 0x4f54fa
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 0x4f5518
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5514
cmp dword [eax], 0
jne 0x4f5514
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f5542
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x4f5532
sub eax, 1
jne 0x4f5542
shl edx, 0x10
jmp 0x4f5542
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 0x4f5577
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
jmp 0x4f4005
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 0x4f4018
test al, al
je 0x4f55b6
cmp byte [esp + 0x64], 0
je 0x4f55b6
push esi
call fcn.004f82a0
push esi
mov edx, eax
call fcn.004f82a0
mov byte [esp + 0x6c], 0
jmp 0x4f55c4
push esi
call fcn.004f8250
push esi
mov edx, eax
call fcn.004f8250
add esp, 8
push edx
push eax
call fcn.004b52a0
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 0x4f55fa
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4010
cmp dword [eax], 0
jne 0x4f4010
jmp 0x4f4005
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f4010
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp edx, edi
jne 0x4f563e
mov eax, dword [esi + 4]
test eax, eax
je 0x4f562b
cmp dword [eax], 0
jne 0x4f562b
mov dword [eax], 0xa1
xor ecx, ecx
neg ecx
push ecx
push esi
call fcn.004f82f0
add esp, 8
jmp 0x4f4010
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5658
sub eax, 1
jne 0x4f5668
shl ecx, 0x10
jmp 0x4f5668
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
cmp ecx, reloc.WS2_32.dll_accept
jl 0x4f5391
neg ecx
push ecx
push esi
call fcn.004f82f0
add esp, 8
jmp 0x4f4010
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x4f56a3
mov eax, dword [esi + 4]
test eax, eax
je 0x4f569f
cmp dword [eax], 0
jne 0x4f569f
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f56cd
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov edi, dword [edi]
sub eax, 1
je 0x4f56bd
sub eax, 1
jne 0x4f56cd
shl edi, 0x10
jmp 0x4f56cd
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 0x4f56eb
mov eax, dword [esi + 4]
test eax, eax
je 0x4f56e7
cmp dword [eax], 0
jne 0x4f56e7
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f5715
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x4f5705
sub eax, 1
jne 0x4f5715
shl edx, 0x10
jmp 0x4f5715
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 0x4f574a
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
jmp 0x4f4005
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 0x4f4018
mov ecx, dword [esp + 0x10]
test al, al
je 0x4f4018
push esi
call fcn.004f82a0
push esi
mov edx, eax
call fcn.004f82a0
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 0x4f5293
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.0x4f57c8.4
movzx eax, byte [edx + 0x4f81c4]
jmp dword [eax*4 + 0x4f8184]
cmp ebx, 3
jne 0x4f5293
cmp byte [esp + 0x33], 0
je 0x4f57fd
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x1d4], 0
je 0x4f5293
cmp dword [eax + 0x1d8], 7
jne 0x4f5293
push edi
push esi
call fcn.004f82f0
mov ebp, dword [esp + 0x24]
push ebp
push esi
call fcn.004f82f0
mov ebx, dword [esp + 0x28]
add esp, 0x10
mov dword [esp + 0x50], 2
jmp 0x4f4014
test ebx, ebx
jne 0x4f5293
cmp byte [esp + 0x33], bl
je 0x4f5af7
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 0x4f5862
push ebx
push 6
push edx
call fcn.004b5b80
add esp, 0xc
test eax, eax
jne 0x4f42c6
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 0x4f4014
test ebx, ebx
jne 0x4f5293
cmp byte [esp + 0x33], bl
je 0x4f5af7
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x1d4], ebx
je 0x4f5293
mov edi, dword [ecx + 0x1d8]
lea eax, [edi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [edi - 1]
cmp eax, 5
ja 0x4f5af7
push 1
push ecx
call fcn.004ee010
add esp, 8
test eax, eax
jne 0x4f5293
lea eax, [edi - 3]
cmp edi, 3
jg 0x4f58e1
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 0x4f5907
cmp edi, 6
jne 0x4f5afb
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.004f2460
mov ebx, dword [esp + 0x34]
add esp, 0x1c
jmp 0x4f4010
cmp ebx, 1
jne 0x4f5293
cmp byte [esp + 0x33], 0
je 0x4f59a4
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 0x4f4014
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], ecx
jmp 0x4f4014
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x284]
mov dword [esp + 0x34], ebx
test ebx, ebx
je 0x4f5293
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 0x4f5293
lea edi, [ecx + ebp]
test ecx, ecx
je 0x4f5abb
mov dword [esp + 0x54], ecx
push ebp
push esi
call fcn.004f81f0
add esp, 8
mov ebp, eax
cmp dword [ebx], 1
jbe 0x4f5a94
mov eax, 1
mov ebx, 4
sub eax, edi
mov dword [esp + 0x38], eax
push edi
push esi
call fcn.004f81f0
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 0x4f5a31
mov ebx, ecx
push ebp
mov ebp, dword [esp + 0x50]
push ebp
push esi
call fcn.004f8330
inc ebp
add esp, 0xc
sub dword [esp + 0x54], 1
mov dword [esp + 0x4c], ebp
jne 0x4f5a10
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 0x4f5aeb
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5af7
cmp dword [eax], 0
jne 0x4f5af7
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [eax], 0xa1
jmp 0x4f4010
lea eax, [edx*8]
sub ecx, eax
mov dword [esi + 0xc], ecx
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jmp 0x4f4010
mov ebp, dword [esp + 0x28]
mov edi, dword [ebp + 0x284]
mov edx, dword [ebp + 0x28c]
cmp ebx, 1
jne 0x4f5293
test edi, edi
je 0x4f5293
push esi
call fcn.004f82a0
mov ebx, eax
add esp, 4
mov eax, dword [edi]
cmp edx, eax
jb 0x4f5293
sub edx, eax
cmp edx, ebx
jb 0x4f5293
mov edx, dword [ebp + 0x288]
test edx, edx
je 0x4f5af7
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x4f5af7
shl eax, 2
push eax
push ecx
lea eax, [edx + ebx*4]
push eax
call fcn.005ad5b0
mov ebp, dword [esp + 0x28]
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x4f4010
cmp ebx, 2
jne 0x4f5293
push esi
call fcn.004f8250
push esi
mov edx, eax
call fcn.004f8250
add eax, edx
push eax
push esi
call fcn.004f82f0
mov ebp, dword [esp + 0x2c]
add esp, 0x10
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f4014
cmp ebx, 2
jne 0x4f5293
push esi
call fcn.004f8250
push esi
mov edx, eax
call fcn.004f8250
sub eax, edx
push eax
push esi
call fcn.004f82f0
mov ebp, dword [esp + 0x2c]
add esp, 0x10
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f4014
cmp ebx, 2
jne 0x4f5293
push esi
call fcn.004f8250
push esi
mov dword [esp + 0x54], eax
call fcn.004f8250
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.004f82f0
mov ebp, dword [esp + 0x24]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f4014
cmp ebx, 2
jne 0x4f5293
push esi
call fcn.004f8250
push esi
mov edx, eax
call fcn.004f8250
add esp, 8
test edx, edx
je 0x4f5293
push edx
push eax
call fcn.004b52a0
push eax
push esi
call fcn.004f82f0
mov ebp, dword [esp + 0x2c]
add esp, 0x10
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f4014
cmp ebx, 2
jne 0x4f5293
mov ebx, dword [esp + 0x28]
cmp dword [ebx + 0x284], 0
je 0x4f5293
push esi
call fcn.004f82a0
mov edx, eax
add esp, 4
cmp edx, dword [ebx + 0x28c]
jae 0x4f5293
push esi
call fcn.004f8250
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 0x4f4014
cmp ebx, 1
jne 0x4f5293
mov edx, dword [esp + 0x28]
cmp dword [edx + 0x284], 0
je 0x4f5293
push esi
call fcn.004f82a0
add esp, 4
cmp eax, dword [edx + 0x28c]
jae 0x4f5293
mov ecx, dword [edx + 0x288]
push dword [ecx + eax*4]
jmp 0x4f5c36
cmp ebx, 4
jne 0x4f5293
push esi
call fcn.004f8250
push esi
mov ebx, eax
call fcn.004f8250
push esi
mov edi, eax
call fcn.004f8250
push esi
mov edx, eax
call fcn.004f8250
cmp edi, ebx
cmovle edx, eax
push edx
push esi
call fcn.004f82f0
mov edi, dword [esp + 0x2c]
add esp, 0x18
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x50], 1
jmp 0x4f4014
test ebx, ebx
jne 0x4f5293
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.004f82f0
mov edi, dword [esp + 0x1c]
jmp 0x4f5c3c
test ebx, ebx
js 0x4f5293
test edx, edx
js 0x4f5293
cmp ebx, 3
mov eax, ebx
mov ecx, 3
cmovg eax, ecx
mov dword [esp + 0x60], eax
cmp eax, 1
jb 0x4f5af7
lea edx, [esp + eax*4 + 0x3e4c]
mov edi, eax
push esi
call fcn.004f8250
add esp, 4
mov dword [edx], eax
lea edx, [edx - 4]
sub edi, 1
jne 0x4f5df4
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jmp 0x4f4010
mov ecx, dword [esp + 0x10]
test al, al
je 0x4f4018
cmp dword [esp + 0x50], 0
jle 0x4f5e30
dec dword [esp + 0x50]
jmp 0x4f4014
test edx, edx
je 0x4f5293
push dword [esp + edx*4 + 0x3e4c]
dec edx
push esi
mov dword [esp + 0x68], edx
call fcn.004f82f0
add esp, 8
jmp 0x4f4014
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x10]
cmp eax, dword [esi + 8]
jne 0x4f5e7d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
mov dword [eax], 0xa1
jmp 0x4f4014
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
jmp 0x4f4018
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f5ea6
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5ea2
cmp dword [eax], 0
jne 0x4f5ea2
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f5eca
cmp dword [eax - 4], 2
je 0x4f5ec2
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5ebe
cmp dword [eax], 0
jne 0x4f5ebe
mov dword [eax], 0xa0
xor edi, edi
jmp 0x4f5eca
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f5ee8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5ee4
cmp dword [eax], 0
jne 0x4f5ee4
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f5f12
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f5f02
sub eax, 1
jne 0x4f5f12
shl ecx, 0x10
jmp 0x4f5f12
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
cmp edi, 0x20
jae 0x4f4010
mov dword [esp + edi*4 + 0x3e78], ecx
jmp 0x4f4010
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f5f45
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5f41
cmp dword [eax], 0
jne 0x4f5f41
mov dword [eax], 0xa1
xor eax, eax
jmp 0x4f5f69
cmp dword [eax - 4], 2
je 0x4f5f61
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5f5d
cmp dword [eax], 0
jne 0x4f5f5d
mov dword [eax], 0xa0
xor eax, eax
jmp 0x4f5f69
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
cmp eax, 0x20
jae 0x4f4018
push dword [esp + eax*4 + 0x3e78]
push esi
call fcn.004f82f0
add esp, 8
jmp 0x4f4014
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 8]
jne 0x4f5fa9
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5fa5
cmp dword [eax], 0
jne 0x4f5fa5
mov dword [eax], 0xa1
xor ebp, ebp
jmp 0x4f5fd4
add ebp, 0xfffffff8
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x4f5fc4
sub eax, 1
jne 0x4f5fd4
shl ebp, 0x10
jmp 0x4f5fd4
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 0x4f5ff2
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5fee
cmp dword [eax], 0
jne 0x4f5fee
mov dword [eax], 0xa1
xor ebx, ebx
jmp 0x4f601c
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x4f600c
sub eax, 1
jne 0x4f601c
shl ebx, 0x10
jmp 0x4f601c
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 0x4f603a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6036
cmp dword [eax], 0
jne 0x4f6036
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f6064
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x4f6054
sub eax, 1
jne 0x4f6064
shl edx, 0x10
jmp 0x4f6064
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 0x4f6082
mov eax, dword [esi + 4]
test eax, eax
je 0x4f607e
cmp dword [eax], 0
jne 0x4f607e
mov dword [eax], 0xa1
xor edi, edi
jmp 0x4f60ac
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x4f609c
sub eax, 1
jne 0x4f60ac
shl edi, 0x10
jmp 0x4f60ac
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 0x4f60eb
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 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
mov dword [eax], 0x82
jmp 0x4f4014
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 0x4f4010
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 0x4f539b
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x4f4010
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f6189
mov eax, dword [esi + 4]
test eax, eax
je 0x4f617f
cmp dword [eax], 0
jne 0x4f617f
mov dword [eax], 0xa1
mov dword [esp + 0x40], 0
jmp 0x4f61c3
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
sub eax, 1
je 0x4f61ad
sub eax, 1
mov eax, dword [ecx]
je 0x4f61a4
mov dword [esp + 0x40], eax
jmp 0x4f61c3
shl eax, 0x10
mov dword [esp + 0x40], eax
jmp 0x4f61c3
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 0x4f61e7
mov eax, dword [esi + 4]
test eax, eax
je 0x4f61dd
cmp dword [eax], 0
jne 0x4f61dd
mov dword [eax], 0xa1
mov dword [esp + 0x34], 0
jmp 0x4f621e
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f620b
sub eax, 1
je 0x4f6202
mov dword [esp + 0x34], ecx
jmp 0x4f621e
shl ecx, 0x10
mov dword [esp + 0x34], ecx
jmp 0x4f621e
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 0x4f6273
mov eax, dword [esi + 4]
test eax, eax
je 0x4f4010
cmp dword [eax], 0
jne 0x4f4010
mov dword [eax], 0x82
jmp 0x4f4014
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 0x4f4014
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 8]
jne 0x4f62d9
mov eax, dword [esi + 4]
test eax, eax
je 0x4f62a6
cmp dword [eax], 0
jne 0x4f62a6
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 0x4f60bc
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 0x4f4010
add ebp, 0xfffffff8
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x4f62f4
sub eax, 1
jne 0x4f6304
shl ebp, 0x10
jmp 0x4f6304
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x4f62a6
mov eax, ebp
mov edi, ebp
sar eax, 1
cmp ebp, 0xa
cmovge edi, eax
push edi
push ebp
call fcn.004b52a0
lea ebx, [edi + 1]
add esp, 8
add ebx, eax
sar ebx, 1
cmp ebx, edi
je 0x4f62a8
nop dword [eax]
push ebx
push ebp
mov edi, ebx
call fcn.004b52a0
inc ebx
add esp, 8
add ebx, eax
sar ebx, 1
cmp ebx, edi
jne 0x4f6330
jmp 0x4f62a8
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f6368
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6364
cmp dword [eax], 0
jne 0x4f6364
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f6392
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f6382
sub eax, 1
jne 0x4f6392
shl edx, 0x10
jmp 0x4f6392
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 0x4f63b6
mov eax, dword [esi + 4]
test eax, eax
je 0x4f63c6
cmp dword [eax], 0
jne 0x4f63c6
mov dword [eax], 0x82
jmp 0x4f63c6
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 0x4f3ff1
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 0x4f4018
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f6415
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6411
cmp dword [eax], 0
jne 0x4f6411
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f643f
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
je 0x4f642f
sub eax, 1
jne 0x4f643f
shl edx, 0x10
jmp 0x4f643f
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
push esi
call fcn.004f8250
push edx
push esi
mov ebx, eax
call fcn.004f82f0
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 0x4f6488
mov eax, dword [esi + 4]
test eax, eax
je 0x4f5afb
cmp dword [eax], 0
jne 0x4f5afb
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [eax], 0x82
jmp 0x4f4014
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 0x4f4010
push esi
call fcn.004f82a0
mov ecx, dword [esi + 0xc]
add esp, 4
sub ecx, dword [esi + 8]
sar ecx, 3
test ecx, ecx
je 0x4f4010
test eax, eax
js 0x4f64c9
cmp eax, ecx
jb 0x4f64c7
xor ecx, ecx
jmp 0x4f64ca
sub ecx, eax
dec ecx
push ecx
push esi
call fcn.004f81f0
push eax
push esi
call fcn.004f82f0
add esp, 0x10
jmp 0x4f4014
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f64fe
mov eax, dword [esi + 4]
test eax, eax
je 0x4f64fa
cmp dword [eax], 0
jne 0x4f64fa
mov dword [eax], 0xa1
xor edx, edx
jmp 0x4f6522
cmp dword [eax - 4], 2
je 0x4f651a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6516
cmp dword [eax], 0
jne 0x4f6516
mov dword [eax], 0xa0
xor edx, edx
jmp 0x4f6522
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x4f6540
mov eax, dword [esi + 4]
test eax, eax
je 0x4f653c
cmp dword [eax], 0
jne 0x4f653c
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f6564
cmp dword [eax - 4], 2
je 0x4f655c
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6558
cmp dword [eax], 0
jne 0x4f6558
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x4f6564
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 0x4f4014
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp ecx, eax
jbe 0x4f65b1
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
mov dword [eax], 0x82
jmp 0x4f4014
test edx, edx
jns 0x4f65c0
neg edx
mov eax, edx
cdq
idiv ecx
neg edx
jmp 0x4f65c5
mov eax, edx
cdq
idiv ecx
mov dword [esp + 0x38], edx
test edx, edx
je 0x4f4014
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 0x4f6621
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 0x4f6631
sub edi, ecx
sub ebx, eax
jmp 0x4f6639
test edi, edi
jns 0x4f6639
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 0x4f65f6
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jmp 0x4f4010
test al, al
je case.0x4f4e10.0
cmp byte [esp + 0x33], 0
je case.0x4f4e10.0
push esi
call fcn.004f8250
mov ebp, eax
push esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x3f20], ebp
call fcn.004f8250
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 0x4f4018
mov eax, dword [esp + 0x44]
cmp byte [eax + 8], 0
je case.0x4f4123.0
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x4f670d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6709
cmp dword [eax], 0
jne 0x4f6709
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f6737
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x4f6727
sub eax, 1
jne 0x4f6737
shl ecx, 0x10
jmp 0x4f6737
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 0x4f6768
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6764
cmp dword [eax], 0
jne 0x4f6764
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f6792
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f6782
sub eax, 1
jne 0x4f6792
shl ecx, 0x10
jmp 0x4f6792
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 0x4f42c6
cmp byte [esp + 0x33], 0
mov ebx, dword [esp + 0x18]
je case.0x4f4e10.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 0x4f4018
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 8], 0
je 0x4f7e6c
test ah, ah
jne 0x4f7e6c
push ebp
lea eax, [esp + 0x134]
push edi
push eax
call fcn.004f2940
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 0x4f68ad
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 0x4f688a
test ebp, ebp
je 0x4f6888
cmp dword [ebp], 0
jne 0x4f6888
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 0x4f6870
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 0x4f4018
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x4f68de
cmp byte [esp + 0xfc], 0
jne case.0x4f4123.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.004f1710
mov eax, dword [esp + 0x40]
add esp, 0x18
cmp byte [eax + 0x224], 0
jne 0x4f42c6
cmp bl, 0x13
jne 0x4f6947
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.004f3a20
mov eax, dword [esi + 8]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x4f4018
push 0xf1c
lea eax, [esp + 0x2f38]
push 0
push eax
call fcn.005adb30
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.004f3a20
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.004f2f70
mov eax, dword [esi + 8]
add esp, 0x30
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x4f4018
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x4f6a6b
cmp byte [esp + 0x23], 0
jne 0x4f6a6b
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f6a4c
sub eax, 1
jne 0x4f6a5c
shl ecx, 0x10
jmp 0x4f6a5c
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 0x4f42c6
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f6a9f
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6a9b
cmp dword [eax], 0
jne 0x4f6a9b
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f6ac9
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f6ab9
sub eax, 1
jne 0x4f6ac9
shl ecx, 0x10
jmp 0x4f6ac9
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 0x4f6b04
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6af0
cmp dword [eax], 0
jne 0x4f6af0
mov dword [eax], 0xa1
xor ecx, ecx
add edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
jmp 0x4f44d8
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f6b2e
sub eax, 1
jne 0x4f6b3e
shl ecx, 0x10
add edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3f14], edi
jmp 0x4f44d8
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 0x4f44d8
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x4f6b9a
cmp byte [esp + 0x23], 0
jne 0x4f6b9a
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f6b7b
sub eax, 1
jne 0x4f6b8b
shl ecx, 0x10
jmp 0x4f6b8b
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 0x4f42c6
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4f6bce
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6bca
cmp dword [eax], 0
jne 0x4f6bca
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x4f6bf8
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x4f6be8
sub eax, 1
jne 0x4f6bf8
shl ecx, 0x10
jmp 0x4f6bf8
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 0x4f44e5
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x4f4018
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 0x4f6d1f
lea ebx, [edi + 6]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f6c65
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6c61
cmp dword [eax], 0
jne 0x4f6c61
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6c8b
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f6c7b
sub eax, 1
jne 0x4f6c8b
shl ecx, 0x10
jmp 0x4f6c8b
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 0x4f6cc4
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6cc0
cmp dword [eax], 0
jne 0x4f6cc0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6ceb
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x4f6cdb
sub eax, 1
jne 0x4f6ceb
shl ecx, 0x10
jmp 0x4f6ceb
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.004f27c0
add ebx, 2
add esp, 0xc
add edi, 2
cmp ebx, ebp
jb 0x4f6c40
cmp edi, ebp
jae 0x4f6f80
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 0x4f6d58
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6d54
cmp dword [eax], 0
jne 0x4f6d54
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6d7f
mov eax, dword [edx + edi*8 - 0xc]
mov ecx, dword [edx + edi*8 - 0x10]
sub eax, 1
je 0x4f6d6f
sub eax, 1
jne 0x4f6d7f
shl ecx, 0x10
jmp 0x4f6d7f
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 0x4f6db1
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6dad
cmp dword [eax], 0
jne 0x4f6dad
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6dd8
mov eax, dword [edx + edi*8 - 4]
mov ecx, dword [edx + edi*8 - 8]
sub eax, 1
je 0x4f6dc8
sub eax, 1
jne 0x4f6dd8
shl ecx, 0x10
jmp 0x4f6dd8
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 0x4f6e07
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6e03
cmp dword [eax], 0
jne 0x4f6e03
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6e2d
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f6e1d
sub eax, 1
jne 0x4f6e2d
shl ecx, 0x10
jmp 0x4f6e2d
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 0x4f6e57
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6e53
cmp dword [eax], 0
jne 0x4f6e53
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6e7e
mov eax, dword [edx + edi*8 + 0xc]
mov ecx, dword [edx + edi*8 + 8]
sub eax, 1
je 0x4f6e6e
sub eax, 1
jne 0x4f6e7e
shl ecx, 0x10
jmp 0x4f6e7e
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 0x4f6ea8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6ea4
cmp dword [eax], 0
jne 0x4f6ea4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6ecf
mov eax, dword [edx + edi*8 + 0x14]
mov ecx, dword [edx + edi*8 + 0x10]
sub eax, 1
je 0x4f6ebf
sub eax, 1
jne 0x4f6ecf
shl ecx, 0x10
jmp 0x4f6ecf
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 0x4f6efe
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6efa
cmp dword [eax], 0
jne 0x4f6efa
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f6f25
mov eax, dword [edx + edi*8 + 0x1c]
mov ecx, dword [edx + edi*8 + 0x18]
sub eax, 1
je 0x4f6f15
sub eax, 1
jne 0x4f6f25
shl ecx, 0x10
jmp 0x4f6f25
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.004f2460
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 0x4f6d30
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4010
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4010
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 0x4f6f84
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 0x4f7029
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f6fec
mov eax, dword [esi + 4]
test eax, eax
je 0x4f6fe8
cmp dword [eax], 0
jne 0x4f6fe8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f7012
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f7002
sub eax, 1
jne 0x4f7012
shl ecx, 0x10
jmp 0x4f7012
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 0x4f702d
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 0x4f7052
mov eax, dword [esi + 4]
test eax, eax
je 0x4f704e
cmp dword [eax], 0
jne 0x4f704e
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f7078
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f7068
sub eax, 1
jne 0x4f7078
shl ecx, 0x10
jmp 0x4f7078
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 0x4f70a3
mov eax, dword [esi + 4]
test eax, eax
je 0x4f709f
cmp dword [eax], 0
jne 0x4f709f
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f70c9
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f70b9
sub eax, 1
jne 0x4f70c9
shl ecx, 0x10
jmp 0x4f70c9
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 0x4f70f9
mov eax, dword [esi + 4]
test eax, eax
je 0x4f70f5
cmp dword [eax], 0
jne 0x4f70f5
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f711f
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f710f
sub eax, 1
jne 0x4f711f
shl ecx, 0x10
jmp 0x4f711f
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 0x4f7149
mov eax, dword [esi + 4]
test eax, eax
je 0x4f7145
cmp dword [eax], 0
jne 0x4f7145
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f717e
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f7167
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x4f717e
shl ecx, 0x10
jmp 0x4f717e
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.004f2460
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 0x4f6fc0
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4010
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 0x4f6f84
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 0x4f7283
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x4f724c
mov eax, dword [esi + 4]
test eax, eax
je 0x4f7248
cmp dword [eax], 0
jne 0x4f7248
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f7272
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f7262
sub eax, 1
jne 0x4f7272
shl ecx, 0x10
jmp 0x4f7272
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 0x4f72a8
mov eax, dword [esi + 4]
test eax, eax
je 0x4f72a4
cmp dword [eax], 0
jne 0x4f72a4
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f72ce
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x4f72be
sub eax, 1
jne 0x4f72ce
shl ecx, 0x10
jmp 0x4f72ce
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 0x4f72f9
mov eax, dword [esi + 4]
test eax, eax
je 0x4f72f5
cmp dword [eax], 0
jne 0x4f72f5
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f731f
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f730f
sub eax, 1
jne 0x4f731f
shl ecx, 0x10
jmp 0x4f731f
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 0x4f7349
mov eax, dword [esi + 4]
test eax, eax
je 0x4f7345
cmp dword [eax], 0
jne 0x4f7345
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f737e
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f7367
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x4f737e
shl ecx, 0x10
jmp 0x4f737e
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 0x4f73ac
mov eax, dword [esi + 4]
test eax, eax
je 0x4f73a8
cmp dword [eax], 0
jne 0x4f73a8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f73e1
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f73ca
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x4f73e1
shl ecx, 0x10
jmp 0x4f73e1
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.004f2460
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 0x4f7220
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4010
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 0x4f78c2
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 0x4f7689
cmp ebp, eax
jb 0x4f74bd
mov eax, dword [esi + 4]
test eax, eax
je 0x4f74b9
cmp dword [eax], 0
jne 0x4f74b9
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f74e3
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x4f74d3
sub eax, 1
jne 0x4f74e3
shl ecx, 0x10
jmp 0x4f74e3
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 0x4f7517
mov eax, dword [esi + 4]
test eax, eax
je 0x4f7513
cmp dword [eax], 0
jne 0x4f7513
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f753d
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f752d
sub eax, 1
jne 0x4f753d
shl ecx, 0x10
jmp 0x4f753d
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 0x4f7569
mov eax, dword [esi + 4]
test eax, eax
je 0x4f7565
cmp dword [eax], 0
jne 0x4f7565
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f758f
mov eax, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + ebx*8]
sub eax, 1
je 0x4f757f
sub eax, 1
jne 0x4f758f
shl ecx, 0x10
jmp 0x4f758f
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 0x4f75bc
mov eax, dword [esi + 4]
test eax, eax
je 0x4f75b8
cmp dword [eax], 0
jne 0x4f75b8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f75f1
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f75da
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x4f75f1
shl ecx, 0x10
jmp 0x4f75f1
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 0x4f767e
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x4f762a
mov eax, dword [esi + 4]
test eax, eax
je 0x4f7626
cmp dword [eax], 0
jne 0x4f7626
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f765f
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f7648
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x4f765f
shl ecx, 0x10
jmp 0x4f765f
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 0x4f7863
mov dword [esp + 0x14], edi
xor bl, bl
jmp 0x4f7863
mov dword [esp + 0x3c], edi
cmp ebp, eax
jb 0x4f76a7
mov eax, dword [esi + 4]
test eax, eax
je 0x4f76a3
cmp dword [eax], 0
jne 0x4f76a3
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f76cd
mov eax, dword [ecx + ebp*8 + 4]
mov ecx, dword [ecx + ebp*8]
sub eax, 1
je 0x4f76bd
sub eax, 1
jne 0x4f76cd
shl ecx, 0x10
jmp 0x4f76cd
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 0x4f76fc
mov eax, dword [esi + 4]
test eax, eax
je 0x4f76f8
cmp dword [eax], 0
jne 0x4f76f8
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f7722
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
sub eax, 1
je 0x4f7712
sub eax, 1
jne 0x4f7722
shl ecx, 0x10
jmp 0x4f7722
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 0x4f774d
mov eax, dword [esi + 4]
test eax, eax
je 0x4f7749
cmp dword [eax], 0
jne 0x4f7749
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f7773
mov eax, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + ebx*8]
sub eax, 1
je 0x4f7763
sub eax, 1
jne 0x4f7773
shl ecx, 0x10
jmp 0x4f7773
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 0x4f77a0
mov eax, dword [esi + 4]
test eax, eax
je 0x4f779c
cmp dword [eax], 0
jne 0x4f779c
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f77d5
mov eax, dword [esp + 0x38]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f77be
sub eax, 1
mov eax, dword [esp + 0x38]
mov ecx, dword [ecx + eax*8]
jne 0x4f77d5
shl ecx, 0x10
jmp 0x4f77d5
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 0x4f785d
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x2c], eax
jb 0x4f780e
mov eax, dword [esi + 4]
test eax, eax
je 0x4f780a
cmp dword [eax], 0
jne 0x4f780a
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x4f7843
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x4f782c
sub eax, 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*8]
jne 0x4f7843
shl ecx, 0x10
jmp 0x4f7843
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 0x4f7861
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.004f2460
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 0x4f7490
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x4f4014
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x4f78ec
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
movzx edx, cl
jmp 0x4f78ff
mov eax, dword [ebx]
test eax, eax
je 0x4f78fd
cmp dword [eax], 0
jne 0x4f78fd
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x4f791d
mov cl, byte [eax]
inc eax
shl edx, 8
mov dword [ebx + 0xc], eax
movzx eax, cl
movsx edx, dx
or edx, eax
jmp 0x4f3fd9
mov eax, dword [ebx]
test eax, eax
je 0x4f792e
cmp dword [eax], 0
jne 0x4f792e
mov dword [eax], 0x55
shl edx, 8
xor eax, eax
movsx edx, dx
or edx, eax
jmp 0x4f3fd9
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x4f4010
cmp bl, 0xf6
ja 0x4f799c
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 0x4f7a85
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
mov dword [eax], 0x82
jmp 0x4f4014
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
cmp bl, 0xfa
ja 0x4f7a17
shl edx, 8
cmp eax, ecx
jae 0x4f79bd
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx eax, cl
jmp 0x4f79d0
mov eax, dword [edi]
test eax, eax
je 0x4f79ce
cmp dword [eax], 0
jne 0x4f79ce
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 0x4f7a85
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
mov dword [eax], 0x82
jmp 0x4f4014
cmp bl, 0xfe
ja 0x4f7a8c
shl edx, 8
cmp eax, ecx
jae 0x4f7a2e
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx eax, cl
jmp 0x4f7a41
mov eax, dword [edi]
test eax, eax
je 0x4f7a3f
cmp dword [eax], 0
jne 0x4f7a3f
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 0x4f7a85
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
mov dword [eax], 0x82
jmp 0x4f4014
mov dword [edx], edi
jmp 0x4f7ba7
cmp eax, ecx
jae 0x4f7a9b
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx edx, cl
jmp 0x4f7aae
mov eax, dword [edi]
test eax, eax
je 0x4f7aac
cmp dword [eax], 0
jne 0x4f7aac
mov dword [eax], 0x55
xor edx, edx
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jae 0x4f7ac1
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx ebx, cl
jmp 0x4f7ad4
mov eax, dword [edi]
test eax, eax
je 0x4f7ad2
cmp dword [eax], 0
jne 0x4f7ad2
mov dword [eax], 0x55
xor ebx, ebx
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jae 0x4f7ae7
mov cl, byte [eax]
inc eax
mov dword [edi + 0xc], eax
movzx edi, cl
jmp 0x4f7afa
mov eax, dword [edi]
test eax, eax
je 0x4f7af8
cmp dword [eax], 0
jne 0x4f7af8
mov dword [eax], 0x55
xor edi, edi
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jae 0x4f7b19
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 0x4f7b2c
mov eax, dword [ecx]
test eax, eax
je 0x4f7b2a
cmp dword [eax], 0
jne 0x4f7b2a
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 0x4f7bc2
cmp edx, 0x7d00
jg 0x4f7b55
cmp edx, 0xffff8300
jge 0x4f7b6a
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 0x4f7ba5
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
mov dword [eax], 0x82
jmp 0x4f4014
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 0x4f4014
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 0x4f63de
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
test eax, eax
je 0x4f4018
cmp dword [eax], 0
jne 0x4f4018
mov dword [eax], 0x82
jmp 0x4f4014
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x2f], 0
je 0x4f7c15
mov eax, 0x12
jmp 0x4f42ca
cmp dword [ecx + 0x244], 0
jne 0x4f7c34
mov eax, dword [edx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x4f7c34
mov eax, 0x12
jmp 0x4f42ca
mov eax, dword [ecx + 0x20]
add ebx, dword [eax]
mov eax, dword [edx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x4f7c65
push ebp
push ecx
call fcn.004f8940
push edi
push dword [esp + 0x34]
mov ebp, eax
call fcn.004f8940
mov ecx, dword [esp + 0x38]
mov edi, eax
add esp, 0x10
mov dword [esp + 0x3c], edi
test ebp, ebp
js 0x4f5293
test edi, edi
js 0x4f5293
cmp byte [ecx + 0x2e], 0
je 0x4f7d2a
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.004b5d50
add esp, 8
test eax, eax
jne 0x4f42ca
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.004b8cd0
push dword [esp + 0x78]
sar eax, 0x10
mov dword [edi + 0x28], eax
call fcn.004b8cd0
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 0x4f42c6
push dword [ecx + 0xc]
call fcn.004b5e70
lea eax, [esp + 0x3e54]
push eax
push ebp
push dword [esp + 0x34]
call fcn.004f1dc0
add esp, 0x10
test eax, eax
jne 0x4f42ca
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.004f3aa0
lea eax, [esp + 0x3e70]
push eax
push dword [esp + 0x4c]
call fcn.004f1c70
mov edx, dword [esp + 0x50]
add esp, 0x28
cmp byte [esp + 0x23], 0
jne 0x4f7dd7
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.004f1dc0
add esp, 0xc
test eax, eax
jne 0x4f42ca
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.004f3aa0
mov ebx, dword [esp + 0x48]
lea eax, [esp + 0x3e70]
push eax
push ebx
call fcn.004f1c70
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 0x4f42c6
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
je 0x4f7e7f
cmp eax, 5
jne 0x4f7e9e
cmp byte [esp + 0x23], 0
jne 0x4f7e9e
push 0
push esi
call fcn.004f81f0
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 0x4f42c6
cmp byte [esp + 0x2ebc], 0
je 0x4f7f33
push dword [esp + 0x2f08]
lea eax, [esp + 0x134]
mov byte [esp + 0x2ec1], 1
push dword [esp + 0x2f08]
push eax
call fcn.004f27c0
add esp, 0xc
cmp byte [esp + 0x2f0c], 0
je 0x4f7f19
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.004f2a90
add esp, 0x18
mov byte [esp + 0x2ebf], 1
mov word [esp + 0x2ebc], 0
mov byte [esp + 0x2f0c], 0
cmp byte [ebx + 9], 0
jne 0x4f42c6
cmp byte [ebx + 8], 0
jne 0x4f42c6
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x4f42c6
cmp byte [esp + 0x3f10], 0
je 0x4f7f6d
mov eax, 0x12
jmp 0x4f42ca
push esi
call fcn.004f82a0
push esi
mov edx, eax
call fcn.004f82a0
push esi
mov edi, eax
call fcn.004f8250
push esi
mov ebx, eax
call fcn.004f8250
mov ebp, eax
lea eax, [esp + 0x3e60]
push eax
push edx
push dword [esp + 0x40]
call fcn.004f1cf0
add esp, 0x1c
test eax, eax
jne 0x4f42ca
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.004f3aa0
mov ebx, dword [esp + 0x48]
lea eax, [esp + 0x3e70]
push eax
push ebx
call fcn.004f1c40
lea eax, [esp + 0x3e78]
push eax
push edi
push ebx
call fcn.004f1cf0
add esp, 0x34
test eax, eax
jne 0x4f42ca
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.004f3aa0
lea eax, [esp + 0x3e70]
push eax
push ebx
call fcn.004f1c40
add esp, 0x28
jmp 0x4f42c6
xor eax, eax
jmp 0x4f42ce