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

Disassembly:
sub esp, 0x70
push ebx
push ebp
push esi
mov esi, dword [esp + 0x88]
push edi
xor edi, edi
mov byte [esp + 0x13], 0
mov byte [esp + 0x14], 0
mov dword [esp + 0x18], edi
test esi, esi
je 0x4f886e
cmp dword [esi], 0xc0dedbad
jne 0x4f886e
mov ebp, dword [esp + 0x84]
cmp byte [ebp + 0x118], 0
je 0x4f7720
mov edi, 0x2a
push esi
mov dword [esp + 0x1c], edi
call fcn.004182e0
push 0
push edi
push esi
call fcn.004f70b0
add esp, 0x10
cmp dword [esi + 0x34], 0x10
je 0x4f7720
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x34], 0x10
dec dword [eax + 0x10]
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0x10], 0
jne 0x4f76e2
push eax
call fcn.004f9160
add esp, 4
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x4f7705
push esi
push ebx
call fcn.00505630
push 0
lea eax, [esi + 0x28]
push eax
lea eax, [ebx + 0x2b4]
push eax
call fcn.00514190
add esp, 0x14
push esi
mov dword [esi + 0x18], 0
call fcn.004f5e20
add esp, 4
nop word [eax + eax]
mov al, byte [ebp + 0x116]
xor ebx, ebx
mov byte [esp + 0x12], 0
mov byte [ebp + 0x116], bl
test al, al
je 0x4f7749
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x4f7749
push dword [eax]
push ebp
call fcn.004f7040
add esp, 8
mov ecx, dword [esi + 0x34]
lea eax, [ecx - 4]
cmp eax, 0xb
ja 0x4f775d
cmp dword [esi + 0x18], ebx
je case.default.0x4f7799
lea eax, [ecx - 3]
cmp eax, 0xc
ja 0x4f778d
push 0
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1a]
push eax
push dword [esp + 0x94]
push esi
call fcn.004f74e0
mov edi, dword [esp + 0x2c]
add esp, 0x14
test al, al
jne 0x4f8680
mov ecx, dword [esi + 0x34]
cmp ecx, 0x11
ja case.default.0x4f7799
jmp dword [ecx*4 + 0x4f887c]
push esi
call fcn.00513180
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
test edi, edi
jne case.0x4f7799.1
cmp dword [esi + 0x34], 2
je 0x4f77c4
mov dword [esi + 0x34], 2
push 1
lea eax, [esp + 0x44]
push esi
push eax
call fcn.0050ae20
add esp, 0xc
push 2
lea eax, [esp + 0x54]
push esi
push eax
call fcn.0050ae20
add esp, 0xc
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x88]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x1d8]
test eax, eax
je 0x4f7809
push 0xa
push 0
push eax
push esi
call fcn.004f5c10
add esp, 0x10
mov eax, dword [esi + 0x1dc]
test eax, eax
je 0x4f7821
push 2
push 0
push eax
push esi
call fcn.004f5c10
add esp, 0x10
cmp dword [esi + 0x34], 3
je case.0x4f7799.3
push esi
mov dword [esi + 0x34], 3
call fcn.005130d0
add esp, 4
lea eax, [esp + 0x15]
push eax
lea eax, [esp + 0x1b]
push eax
push esi
call fcn.00500d30
mov edi, eax
add esp, 0xc
mov dword [esp + 0x18], edi
cmp edi, 0x59
jne 0x4f78b7
cmp dword [esi + 0x34], 1
je 0x4f7862
mov dword [esi + 0x34], 1
lea eax, [esi + 0x1c]
push eax
lea eax, [ebp + 0x24]
push esi
push eax
call fcn.00513fd0
mov ecx, dword [esi + 0x14]
add esp, 0xc
mov eax, dword [esi + 0x10]
test ecx, ecx
je 0x4f7882
mov dword [ecx + 0x10], eax
jmp 0x4f7885
mov dword [ebp + 4], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
test ecx, ecx
je 0x4f78a3
mov dword [ecx + 0x14], eax
xor edi, edi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esp + 0x18], edi
jmp case.0x4f7799.1
mov dword [ebp + 8], eax
xor edi, edi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esp + 0x18], edi
jmp case.0x4f7799.1
mov eax, dword [esi + 0x7c]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x4f78cc
push dword [ecx]
push eax
call fcn.004f7040
add esp, 8
test edi, edi
jne case.0x4f7799.1
push 3
lea eax, [esp + 0x64]
push esi
push eax
call fcn.0050ae20
add esp, 0xc
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x88]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x34]
cmp byte [esp + 0x17], bl
je 0x4f790f
cmp eax, 4
je case.0x4f7799.1
mov dword [esi + 0x34], 4
jmp case.0x4f7799.1
or ebx, 0xffffffff
cmp byte [esp + 0x15], 0
je 0x4f792e
cmp eax, 7
je case.0x4f7799.1
mov dword [esi + 0x34], 7
jmp case.0x4f7799.1
cmp eax, 5
je case.0x4f7799.1
mov dword [esi + 0x34], 5
jmp case.0x4f7799.1
mov eax, dword [esi + 0x18]
mov dword [esp + 0x1c], ebx
cmp byte [eax + 0x240], bl
je 0x4f7957
mov ebx, dword [eax + 0x78]
jmp 0x4f7967
cmp byte [eax + 0x249], bl
je 0x4f7964
mov ebx, dword [eax + 0x48]
jmp 0x4f7967
mov ebx, dword [eax + 0x30]
push dword [eax + 0xec]
push ebx
push esi
call fcn.00514970
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4f79a7
push ebx
push 0x54b6c8
xor edi, edi
mov dword [esi + 0x908], eax
push esi
mov byte [esi + 0x91c], 1
mov dword [esp + 0x24], edi
call fcn.004f55c0
add esp, 0xc
cmp dword [esp + 0x1c], edi
jne 0x4f79bb
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.005155c0
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
push esi
push ebp
call fcn.004f9290
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4f87f7
cmp dword [esp + 0x1c], eax
je 0x4f79f0
lea eax, [esp + 0x15]
push eax
push esi
call fcn.00515010
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
je 0x4f7a02
mov dword [esi + 0x18], ebx
test edi, edi
je case.0x4f7799.1
mov byte [esp + 0x12], 1
jmp case.0x4f7799.1
mov eax, dword [esi + 0x34]
jmp 0x4f790f
lea eax, [esp + 0x13]
push eax
push esi
call fcn.00516b00
mov edi, eax
add esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp + 0x18], edi
cmp byte [eax + 0x244], bl
je 0x4f7a59
xor edi, edi
or ebx, 0xffffffff
push edi
push edi
push esi
mov dword [esp + 0x24], edi
call fcn.004f70b0
add esp, 0xc
cmp dword [esi + 0x34], 3
je case.0x4f7799.1
push esi
mov dword [esi + 0x34], 3
call fcn.005130d0
jmp 0x4f8644
test edi, edi
jne 0x4f79f8
or ebx, 0xffffffff
cmp dword [esi + 0x34], 7
jmp 0x4f791c
lea eax, [esp + 0x15]
push eax
push 0
push 0
push esi
call fcn.005054b0
add esp, 0x10
mov edi, eax
mov dword [esp + 0x18], edi
cmp byte [esp + 0x15], bl
je 0x4f7a97
test edi, edi
jne 0x4f7a9f
or ebx, 0xffffffff
cmp dword [esi + 0x34], 7
jmp 0x4f791c
test edi, edi
je case.0x4f7799.1
push esi
call fcn.004182e0
push 1
push edi
push esi
call fcn.004f70b0
add esp, 0x10
mov byte [esp + 0x12], 1
jmp case.0x4f7799.1
test edi, edi
jne 0x4f7a9f
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x247], bl
je 0x4f7ad9
mov dword [esi + 0x34], 9
or ebx, 0xffffffff
jmp case.0x4f7799.1
test edi, edi
jne 0x4f7a9f
mov eax, dword [esi + 0x18]
push edi
push eax
mov dword [esp + 0x28], eax
mov byte [esp + 0x1b], bl
call fcn.005059e0
add esp, 8
test al, al
mov eax, dword [esp + 0x20]
je 0x4f7b25
cmp byte [eax + 0x24e], bl
je 0x4f7b2d
mov eax, dword [eax + 0x260]
movzx ecx, byte [esp + 0x13]
mov dword [esp + 0x18], edi
cmp dword [eax + 0x18], ebx
mov eax, 1
cmove ecx, eax
mov eax, dword [esi + 0x34]
mov byte [esp + 0x13], cl
jmp 0x4f7b70
cmp byte [eax + 0x24e], bl
jne 0x4f7b5d
mov eax, dword [eax + 0x260]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f7b4d
lea ecx, [esp + 0x13]
push ecx
push esi
call eax
mov edi, eax
add esp, 8
test edi, edi
jne 0x4f7b5d
jmp 0x4f7b52
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x20]
mov byte [eax + 0x24e], 1
mov eax, dword [esi + 0x34]
mov dword [esp + 0x18], edi
test edi, edi
jne 0x4f7a9f
mov cl, byte [esp + 0x13]
test cl, cl
jne 0x4f7b88
cmp eax, 8
je 0x4f7b80
mov dword [esi + 0x34], 8
or ebx, 0xffffffff
jmp case.0x4f7799.1
cmp eax, 9
je 0x4f7b94
mov dword [esi + 0x34], 9
or ebx, 0xffffffff
jmp case.0x4f7799.1
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x4f7bdd
mov eax, dword [ecx + 0x260]
cmp dword [eax + 0x18], ebx
je 0x4f7bdd
mov byte [esp + 0x13], bl
mov eax, dword [ecx + 0x260]
lea ecx, [esp + 0x13]
push ecx
push esi
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esi + 0x34]
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
jne 0x4f7a9f
mov al, byte [esp + 0x13]
jmp 0x4f7bee
mov al, 1
xor edi, edi
mov byte [esp + 0x13], al
mov ecx, 8
mov dword [esp + 0x18], edi
test al, al
je case.0x4f7799.1
cmp ecx, 9
jmp 0x4f7b8b
mov edx, dword [esi + 0x1b4]
mov ecx, 9
test edx, edx
je 0x4f7c87
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x4f7c1e
mov byte [eax + 0x117], 1
mov edx, dword [esi + 0x1b4]
push dword [esi + 0xdac]
lea eax, [esi + 0xd7a]
push dword [esi + 0xda8]
push eax
lea eax, [esi + 0xd4c]
push eax
push dword [esi + 0x1b8]
call edx
mov ecx, dword [esi + 0x7c]
add esp, 0x14
test ecx, ecx
je 0x4f7c50
mov byte [ecx + 0x117], bl
test eax, eax
je 0x4f7c84
push str.operation_aborted_by_pre_request_callback
push esi
call fcn.004f54f0
mov edi, 0x2a
push esi
mov dword [esp + 0x24], edi
call fcn.004182e0
push 0
push edi
push esi
call fcn.004f70b0
add esp, 0x18
mov byte [esp + 0x12], 1
jmp case.0x4f7799.1
mov ecx, dword [esi + 0x34]
cmp byte [esi + 0x66d], 1
mov eax, dword [esi + 0x18]
jne 0x4f7cb9
push 0
push eax
call fcn.005065f0
add esp, 8
cmp dword [esi + 0x34], 0xf
je 0x4f7cab
mov dword [esi + 0x34], 0xf
xor edi, edi
or ebx, 0xffffffff
mov dword [esp + 0x18], edi
jmp case.0x4f7799.1
mov eax, dword [eax + 0x260]
xor edi, edi
mov eax, dword [eax + 8]
test eax, eax
je 0x4f7cd8
lea ecx, [esp + 0x14]
push ecx
push esi
call eax
mov ecx, dword [esi + 0x34]
add esp, 8
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x4f7dcc
cmp byte [esp + 0x14], bl
jne 0x4f7d7b
cmp byte [esi + 0xcee], bl
je 0x4f7d63
mov eax, dword [esi + 0xd00]
mov al, byte [eax + 0x20]
cmp al, 7
je 0x4f7d07
cmp al, 5
jne 0x4f7d63
push 0
push 0
push esi
call fcn.004f70b0
mov ebx, dword [esi + 0x18]
add esp, 0xc
mov eax, ebx
neg eax
sbb eax, eax
add eax, 0x10
cmp dword [esi + 0x34], eax
je 0x4f7d5b
mov dword [esi + 0x34], eax
test ebx, ebx
jne 0x4f7d43
mov eax, dword [esi + 0x7c]
dec dword [eax + 0x10]
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0x10], ebx
jne 0x4f7d43
push eax
call fcn.004f9160
add esp, 4
xor eax, eax
test ebx, ebx
sete al
mov eax, dword [eax*4 + 0x54b54c]
test eax, eax
je 0x4f7d5b
push esi
call eax
add esp, 4
or ebx, 0xffffffff
jmp case.0x4f7799.1
cmp ecx, 0xa
je 0x4f7b94
mov dword [esi + 0x34], 0xa
or ebx, 0xffffffff
jmp case.0x4f7799.1
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x24d], bl
je 0x4f7d9e
cmp ecx, 0xb
je 0x4f7b94
mov dword [esi + 0x34], 0xb
or ebx, 0xffffffff
jmp case.0x4f7799.1
cmp ecx, 0xc
je 0x4f7b94
push 7
lea eax, [esp + 0x74]
mov dword [esi + 0x34], 0xc
push esi
push eax
mov byte [esi + 0x138], bl
call fcn.0050ae20
add esp, 0xc
or ebx, 0xffffffff
jmp case.0x4f7799.1
cmp edi, 0x37
jne 0x4f7e83
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x247], bl
je 0x4f7e83
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], ebx
push eax
push esi
call fcn.00513940
add esp, 8
test eax, eax
je 0x4f7e05
mov edi, eax
mov byte [esp + 0x12], 1
mov dword [esp + 0x18], edi
push esi
call fcn.004182e0
push 0
push edi
push esi
call fcn.004f70b0
mov ecx, dword [esp + 0x2c]
add esp, 0x10
test ecx, ecx
je 0x4f7e72
test eax, eax
je 0x4f7e3a
cmp eax, 0x37
je 0x4f7e3a
mov edi, eax
push ecx
mov dword [esp + 0x1c], edi
call dword [0x570004]
jmp 0x4f8644
push 2
push ecx
push esi
call fcn.00512bd0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4f7e5e
cmp dword [esi + 0x34], 2
je 0x4f7e59
mov dword [esi + 0x34], 2
or ebx, 0xffffffff
xor edi, edi
mov ecx, dword [esp + 0x1c]
push ecx
mov dword [esp + 0x1c], edi
call dword [0x570004]
jmp 0x4f8644
push ecx
mov byte [esp + 0x16], 1
call dword [0x570004]
jmp 0x4f8644
push esi
call fcn.004182e0
add esp, 4
cmp dword [esi + 0x18], ebx
je 0x4f7ab1
push 0
push edi
push esi
call fcn.004f70b0
add esp, 0xc
mov byte [esp + 0x12], 1
jmp case.0x4f7799.1
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x4f7efe
mov eax, dword [ecx + 0x260]
cmp dword [eax + 0x1c], ebx
je 0x4f7efe
mov byte [esp + 0x14], bl
mov eax, dword [ecx + 0x260]
lea ecx, [esp + 0x14]
push ecx
push esi
mov eax, dword [eax + 0x1c]
call eax
mov edx, dword [esi + 0x34]
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
je 0x4f7f0e
push esi
call fcn.004182e0
push 0
push edi
push esi
call fcn.004f70b0
add esp, 0x10
mov byte [esp + 0x12], 1
jmp case.0x4f7799.1
xor edi, edi
mov byte [esp + 0x14], 1
mov edx, 0xa
mov dword [esp + 0x18], edi
cmp byte [esp + 0x14], bl
je case.0x4f7799.1
mov eax, dword [esi + 0x18]
mov cl, byte [eax + 0x24d]
xor eax, eax
test cl, cl
sete al
add eax, 0xb
cmp edx, eax
je 0x4f7d5b
mov dword [esi + 0x34], eax
xor eax, eax
test cl, cl
sete al
mov eax, dword [eax*4 + 0x54b53c]
jmp 0x4f7d51
mov eax, dword [esi + 0x18]
xor ecx, ecx
mov dword [esp + 0x38], ecx
xor edi, edi
mov eax, dword [eax + 0x260]
lea edx, [edi + 0xb]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4f7f78
lea ecx, [esp + 0x38]
push ecx
push esi
call eax
mov edx, dword [esi + 0x34]
add esp, 8
mov ecx, dword [esp + 0x38]
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x4f7ee2
test ecx, ecx
je case.0x4f7799.1
xor eax, eax
cmp ecx, 1
sete al
lea eax, [eax*2 + 0xa]
cmp edx, eax
je 0x4f7d5b
mov dword [esi + 0x34], eax
mov eax, dword [eax*4 + 0x54b510]
jmp 0x4f7d51
mov eax, dword [esi + 0x18]
mov edx, 0xc
cmp byte [eax + 0x256], bl
je 0x4f7fdc
mov ebx, dword [ebp + 0x24]
test ebx, ebx
je 0x4f7fdc
push dword [ebx]
push ebp
call fcn.004f7040
mov edx, dword [esi + 0x34]
add esp, 8
mov eax, dword [esi + 0x18]
mov ecx, edx
cmp dword [eax + 0x278], 0xffffffff
jne 0x4f8027
cmp dword [eax + 0x27c], 0xffffffff
jne 0x4f8027
cmp byte [esi + 0xcee], 0
je 0x4f8013
mov eax, dword [eax + 0x260]
test dword [eax + 0x50], 0x1000
jne 0x4f8013
mov eax, dword [esi + 0xd00]
mov byte [eax + 0x20], 7
mov ecx, dword [esi + 0x34]
cmp ecx, 0xf
je 0x4f8033
mov dword [esi + 0x34], 0xf
or ebx, 0xffffffff
jmp case.0x4f7799.1
cmp edx, 0xd
je 0x4f8033
mov dword [esi + 0x34], 0xd
or ebx, 0xffffffff
jmp case.0x4f7799.1
push esi
call fcn.0050b150
add esp, 4
test eax, eax
je 0x4f8059
mov eax, 0x2a
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], edi
jmp 0x4f8082
mov ecx, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
movups xmm0, xmmword [ecx]
push esi
movups xmmword [eax], xmm0
call fcn.0051c1a0
add esp, 0x14
mov dword [esp + 0x30], eax
mov edi, eax
mov dword [esp + 0x18], edi
test eax, eax
je 0x4f80bb
mov edx, dword [esi + 0x18]
mov ecx, dword [edx + 0x260]
test byte [ecx + 0x50], 2
jne 0x4f80a1
cmp eax, 0x5c
je 0x4f80a1
push 2
push edx
call fcn.005065f0
add esp, 8
push esi
call fcn.004182e0
push 1
push dword [esp + 0x38]
push esi
call fcn.004f70b0
add esp, 0x10
jmp case.0x4f7799.1
mov edx, dword [esi + 0x208]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x20c]
mov eax, edx
or eax, ecx
movlpd qword [esp + 0x30], xmm0
je 0x4f8127
mov ebp, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0x780]
push ecx
push edx
push dword [esi + 0x794]
movups xmmword [eax], xmm0
push dword [esi + 0x790]
push dword [esi + 0x6dc]
push dword [esi + 0x6d8]
call fcn.0050aa60
mov ebp, dword [esp + 0xbc]
add esp, 0x38
mov dword [esp + 0x20], edx
jmp 0x4f8133
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 0x210]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x214]
mov dword [esp + 0x1c], eax
mov eax, edx
or eax, ecx
movlpd qword [esp + 0x28], xmm0
je 0x4f81a1
mov ebp, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0x798]
push ecx
push edx
push dword [esi + 0x7ac]
movups xmmword [eax], xmm0
push dword [esi + 0x7a8]
push dword [esi + 0x6d4]
push dword [esi + 0x6d0]
call fcn.0050aa60
mov ebp, dword [esp + 0xbc]
add esp, 0x38
mov ecx, eax
jmp 0x4f81a9
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x20]
jne 0x4f81e6
mov eax, ecx
or eax, edx
jne 0x4f81e6
cmp dword [esi + 0x34], 0xd
je 0x4f81c6
mov dword [esi + 0x34], 0xd
mov ecx, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
movups xmm0, xmmword [ecx]
push esi
movups xmmword [eax], xmm0
call fcn.0050b4d0
add esp, 0x14
jmp case.0x4f7799.1
cmp dword [esp + 0x20], edx
jl 0x4f820b
mov eax, dword [esp + 0x1c]
jg 0x4f81f6
cmp eax, ecx
jb 0x4f820b
push 0xb
push dword [esp + 0x24]
push eax
push esi
call fcn.004f5c10
add esp, 0x10
jmp case.0x4f7799.1
push 0xb
push edx
push ecx
push esi
call fcn.004f5c10
add esp, 0x10
jmp case.0x4f7799.1
mov edx, dword [esi + 0x208]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x20c]
mov eax, edx
or eax, ecx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x16], bl
movlpd qword [esp + 0x30], xmm0
je 0x4f8291
mov ebp, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0x780]
push ecx
push edx
push dword [esi + 0x794]
movups xmmword [eax], xmm0
push dword [esi + 0x790]
push dword [esi + 0x6dc]
push dword [esi + 0x6d8]
call fcn.0050aa60
mov ebp, dword [esp + 0xbc]
add esp, 0x38
mov dword [esp + 0x24], edx
jmp 0x4f829d
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 0x210]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x214]
mov dword [esp + 0x20], eax
mov eax, edx
or eax, ecx
movlpd qword [esp + 0x28], xmm0
je 0x4f830f
mov ebp, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0x798]
push ecx
push edx
push dword [esi + 0x7ac]
movups xmmword [eax], xmm0
push dword [esi + 0x7a8]
push dword [esi + 0x6d4]
push dword [esi + 0x6d0]
call fcn.0050aa60
mov ebp, dword [esp + 0xbc]
add esp, 0x38
mov ecx, eax
mov dword [esp + 0x28], eax
jmp 0x4f831b
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x24]
mov dword [esp + 0x30], edx
jne 0x4f851c
mov eax, ecx
or eax, edx
jne 0x4f851c
push esi
call fcn.00513520
add esp, 4
mov edi, eax
mov dword [esp + 0x18], edi
cmp byte [esi + 0x12e], bl
jne 0x4f8398
cmp edi, 0x38
je 0x4f8398
cmp edi, 0x5c
jne 0x4f83d2
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x260]
test byte [eax + 0x50], 2
jne 0x4f8377
cmp edi, 0x5c
je 0x4f8377
push 2
push ecx
call fcn.005065f0
add esp, 8
push esi
call fcn.004182e0
push 1
push edi
push esi
call fcn.004f70b0
add esp, 0x10
push dword [esp + 0x1c]
call dword [0x570004]
jmp 0x4f8644
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.00513940
add esp, 8
test eax, eax
jne 0x4f83c8
cmp dword [esp + 0x1c], ebx
setne al
mov byte [esp + 0x16], al
test al, al
je 0x4f83d2
xor edi, edi
mov byte [esi + 0x12e], 1
mov dword [esp + 0x18], edi
jmp 0x4f83d6
test edi, edi
jne 0x4f8358
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x4f8358
cmp byte [esi + 0x12e], bl
je 0x4f84f2
push esi
call fcn.004f3370
add esp, 4
test al, al
jne 0x4f84f2
push esi
call fcn.004182e0
add esp, 4
cmp byte [esp + 0x16], bl
jne 0x4f84a8
cmp dword [esi + 0x120], ebx
jne 0x4f8484
cmp dword [esi + 0x11c], ebx
je 0x4f8465
push dword [esp + 0x1c]
call dword [0x570004]
mov eax, dword [esi + 0x11c]
push 1
push eax
push esi
mov dword [esp + 0x2c], eax
mov dword [esi + 0x11c], ebx
call fcn.00512bd0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x18], edi
test edi, edi
je 0x4f8465
push 1
push edi
push esi
mov byte [esp + 0x1e], 1
call fcn.004f70b0
mov edi, eax
add esp, 0xc
mov dword [esp + 0x18], edi
test edi, edi
jne 0x4f8389
cmp dword [esi + 0x34], 0xf
je 0x4f8472
mov dword [esi + 0x34], 0xf
push dword [esp + 0x1c]
or ebx, 0xffffffff
call dword [0x570004]
jmp 0x4f8644
push dword [esp + 0x1c]
call dword [0x570004]
mov eax, dword [esi + 0x120]
add esp, 4
mov dword [esp + 0x1c], eax
mov edi, 3
mov dword [esi + 0x120], ebx
jmp 0x4f84ad
mov edi, 2
push 0
push 0
push esi
call fcn.004f70b0
push edi
push dword [esp + 0x2c]
push esi
call fcn.00512bd0
mov edi, eax
add esp, 0x18
mov dword [esp + 0x18], edi
test edi, edi
jne 0x4f8389
cmp dword [esi + 0x34], 2
je 0x4f84e0
mov dword [esi + 0x34], 2
push dword [esp + 0x1c]
or ebx, 0xffffffff
call dword [0x570004]
jmp 0x4f8644
cmp byte [esi + 0xce7], bl
je 0x4f8389
push 8
push 0
push 0
push esi
call fcn.004f5c10
add esp, 0x10
push dword [esp + 0x1c]
call dword [0x570004]
jmp 0x4f8644
mov ecx, dword [esp + 0x88]
sub esp, 0x10
mov eax, esp
movups xmm0, xmmword [ecx]
push esi
movups xmmword [eax], xmm0
call fcn.0050b4d0
add esp, 0x14
cmp dword [esi + 0x34], 0xe
je 0x4f8544
mov dword [esi + 0x34], 0xe
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esp + 0x30]
jl 0x4f856e
mov eax, dword [esp + 0x20]
jg 0x4f8578
mov edx, dword [esp + 0x28]
cmp eax, edx
jb 0x4f8572
push 0xb
push ecx
push eax
push esi
call fcn.004f5c10
add esp, 0x10
jmp case.0x4f7799.1
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, edx
push 0xb
push ecx
push eax
push esi
call fcn.004f5c10
add esp, 0x10
jmp case.0x4f7799.1
mov eax, dword [esi + 0x18]
or ebx, 0xffffffff
test eax, eax
je 0x4f85c4
cmp byte [eax + 0x256], 0
je 0x4f85af
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x4f85af
push dword [eax]
push ebp
call fcn.004f7040
add esp, 8
push 0
push edi
push esi
call fcn.004f70b0
add esp, 0xc
test edi, edi
cmove edi, eax
mov dword [esp + 0x18], edi
cmp byte [esi + 0xcee], 0
je 0x4f85e8
mov eax, dword [esi + 0xd00]
cmp byte [eax + 0x20], 7
je 0x4f85e8
cmp dword [esi + 0x34], 0
je case.0x4f7799.1
mov dword [esi + 0x34], 0
jmp case.0x4f7799.1
cmp dword [esi + 0x34], 0x10
je case.0x4f7799.1
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x34], 0x10
dec dword [eax + 0x10]
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0x10], 0
jne 0x4f860d
push eax
call fcn.004f9160
add esp, 4
mov eax, dword [esi + 0x18]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4f8637
push esi
push eax
call fcn.00505630
push 0
lea eax, [esi + 0x28]
push eax
mov eax, dword [esp + 0x40]
add eax, 0x2b4
push eax
call fcn.00514190
add esp, 0x14
push esi
mov dword [esi + 0x18], 0
call fcn.004f5e20
add esp, 4
mov eax, dword [esi + 0x34]
sub eax, 3
cmp eax, 5
ja 0x4f8680
cmp ebx, 0xffffffff
je 0x4f8680
cmp byte [ebp + 0x116], 0
jne 0x4f8680
push 0
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1a]
push eax
push dword [esp + 0x94]
push esi
call fcn.004f74e0
mov edi, dword [esp + 0x2c]
add esp, 0x14
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jge 0x4f87d8
test edi, edi
je 0x4f8761
mov ecx, dword [ebp + 0x24]
test ecx, ecx
je 0x4f86a9
push dword [ecx]
push ebp
call fcn.004f7040
mov eax, dword [esi + 0x34]
add esp, 8
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x4f86f8
cmp byte [esp + 0x12], 0
je 0x4f8706
cmp edi, 0x1c
push esi
push ebx
sete byte [esp + 0x44]
call fcn.00505630
push 0
lea eax, [esi + 0x28]
push eax
lea eax, [ebx + 0x2b4]
push eax
call fcn.00514190
push 1
push ebx
push esi
mov dword [esi + 0x18], 0
call fcn.004fd600
push dword [esp + 0x5c]
push ebx
push esi
call fcn.00500e50
add esp, 0x2c
jmp 0x4f8706
cmp eax, 3
jne 0x4f8706
push esi
call fcn.004182e0
add esp, 4
cmp dword [esi + 0x34], 0x10
je 0x4f87d5
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x34], 0x10
dec dword [eax + 0x10]
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0x10], 0
jne 0x4f872f
push eax
call fcn.004f9160
add esp, 4
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x4f8752
push esi
push ebx
call fcn.00505630
push 0
lea eax, [esi + 0x28]
push eax
lea eax, [ebx + 0x2b4]
push eax
call fcn.00514190
add esp, 0x14
push esi
mov dword [esi + 0x18], 0
call fcn.004f5e20
jmp 0x4f87d2
cmp dword [esi + 0x18], 0
je 0x4f87d8
push esi
call fcn.0050b150
add esp, 4
test eax, eax
je 0x4f87d8
push 2
push dword [esi + 0x18]
mov edi, 0x2a
mov dword [esp + 0x20], edi
call fcn.005065f0
mov ebx, dword [esi + 0x34]
xor eax, eax
add esp, 8
cmp ebx, 0xf
setge al
add eax, 0xf
cmp ebx, eax
je 0x4f87d5
mov dword [esi + 0x34], eax
cmp ebx, 0xf
jl 0x4f87bc
mov eax, dword [esi + 0x7c]
dec dword [eax + 0x10]
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0x10], 0
jne 0x4f87bc
push eax
call fcn.004f9160
add esp, 4
xor eax, eax
cmp ebx, 0xf
setge al
mov eax, dword [eax*4 + 0x54b54c]
test eax, eax
je 0x4f87d5
push esi
call eax
add esp, 4
or ebx, 0xffffffff
cmp dword [esi + 0x34], 0x10
je 0x4f8801
cmp ebx, 0xffffffff
je 0x4f7720
cmp byte [ebp + 0x116], 0
jne 0x4f7720
mov dword [esi + 0x38], edi
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov eax, dword [esi + 0x648]
test eax, eax
je 0x4f8814
push edi
push esi
call eax
add esp, 8
jmp 0x4f8832
lea eax, [esi + 0x3c]
mov dword [eax + 0xc], 1
push eax
push eax
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
lea eax, [ebp + 0x14]
push eax
call fcn.00513fd0
add esp, 0xc
cmp dword [esi + 0x34], 0x11
je 0x4f883f
mov dword [esi + 0x34], 0x11
lea eax, [esi + 0x1c]
push eax
lea eax, [ebp + 0x34]
push esi
push eax
call fcn.00513fd0
push esi
push ebp
call fcn.004f9680
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x70
ret