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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, dword [esp + 0x78]
push edi
xor edi, edi
mov byte [esp + 0x13], 0
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], 0
mov dword [esp + 0x18], edi
test esi, esi
je 0x10019dcd
cmp dword [esi], 0xc0dedbad
jne 0x10019dcd
mov ebp, dword [esp + 0x74]
mov ebx, fcn.10017710
cmp byte [ebp + 0x108], 0
je 0x10018ee1
mov edi, 0x2a
push esi
mov dword [esp + 0x1c], edi
call fcn.1001d4c0
push 0
push edi
push esi
call fcn.100188d0
add esp, 0x10
cmp dword [esi + 0x34], 0xf
je 0x10018ee1
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x34], 0xf
dec dword [eax + 0x10]
test ebx, ebx
je 0x10018ee1
push esi
call fcn.10017710
add esp, 4
mov al, byte [ebp + 0x106]
xor ebx, ebx
mov byte [esp + 0x11], 0
mov byte [ebp + 0x106], bl
test al, al
je 0x10018f01
push ebp
call fcn.1001a610
add esp, 4
mov eax, dword [esi + 0x34]
cmp eax, 2
jle 0x10018f17
cmp eax, 0xf
jge 0x10018f17
cmp dword [esi + 0x18], ebx
je case.default.0x10018f5a
cmp dword [esi + 0x18], ebx
je 0x10018f4e
cmp eax, 2
jl 0x10018f4e
cmp eax, 0xf
jge 0x10018f4e
push 0
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x19]
push eax
push dword [esp + 0x84]
push esi
call fcn.10018d00
mov edi, dword [esp + 0x2c]
add esp, 0x14
test al, al
jne 0x10019c1c
mov eax, dword [esi + 0x34]
cmp eax, 0x10
ja case.default.0x10018f5a
jmp dword [eax*4 + 0x10019ddc]
push esi
call fcn.1002e220
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
test edi, edi
jne case.0x10018f5a.1
cmp dword [esi + 0x34], 2
je 0x10018f97
mov eax, fcn.1002e180
mov dword [esi + 0x34], 2
test eax, eax
je 0x10018f97
push esi
call fcn.1002e180
add esp, 4
push 1
lea eax, [esp + 0x44]
push esi
push eax
call fcn.10037f10
mov ecx, dword [esp + 0x84]
add esp, 0xc
or ebx, 0xffffffff
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
jmp 0x10019be0
push esi
call fcn.10017c90
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
test edi, edi
jne case.0x10018f5a.1
push 2
lea eax, [esp + 0x54]
push esi
push eax
call fcn.10037f10
add esp, 0xc
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x78]
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x1e0]
test eax, eax
je 0x10019004
push 0xa
push edi
push eax
push esi
call fcn.100177e0
add esp, 0x10
mov eax, dword [esi + 0x1e4]
test eax, eax
je 0x1001901c
push 2
push 0
push eax
push esi
call fcn.100177e0
add esp, 0x10
lea eax, [esp + 0x12]
push eax
lea eax, [esp + 0x1b]
push eax
push esi
call fcn.10023c20
mov edi, eax
add esp, 0xc
mov dword [esp + 0x18], edi
cmp edi, 0x59
jne 0x1001906d
cmp dword [esi + 0x34], 1
je 0x10019047
mov dword [esi + 0x34], 1
lea eax, [esi + 0x1c]
push eax
push esi
push dword [ebp + 0x28]
lea eax, [ebp + 0x24]
push eax
call fcn.10030b20
push esi
push ebp
call fcn.1001ad40
add esp, 0x18
xor edi, edi
mov dword [esp + 0x18], edi
jmp case.0x10018f5a.1
cmp byte [esi + 0xd00], bl
je 0x1001908b
push str.Transfer_was_pending__now_try_another
push esi
call fcn.10028dd0
push dword [esi + 0x7c]
call fcn.1001a610
add esp, 0xc
test edi, edi
jne case.0x10018f5a.1
push 3
lea eax, [esp + 0x64]
push esi
push eax
call fcn.10037f10
mov ecx, dword [esp + 0x84]
add esp, 0xc
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
cmp byte [esp + 0x17], bl
je 0x100190cc
cmp dword [esi + 0x34], 3
je 0x10019be0
mov dword [esi + 0x34], 3
jmp 0x10019be0
or ebx, 0xffffffff
cmp byte [esp + 0x12], 0
je 0x100191c5
cmp dword [esi + 0x34], 6
je 0x10019be0
mov dword [esi + 0x34], 6
jmp 0x10019be0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x1c], ebx
cmp byte [eax + 0x1a8], bl
je 0x10019104
mov ebx, dword [eax + 0x78]
jmp 0x10019114
cmp byte [eax + 0x1b1], bl
je 0x10019111
mov ebx, dword [eax + 0x48]
jmp 0x10019114
mov ebx, dword [eax + 0x30]
push dword [eax + 0x36c]
push ebx
push esi
call fcn.100311f0
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10019154
push ebx
push 0x102cd75c
xor edi, edi
mov dword [esi + 0x944], eax
push esi
mov byte [esi + 0x958], 1
mov dword [esp + 0x24], edi
call fcn.10028dd0
add esp, 0xc
cmp dword [esp + 0x1c], edi
jne 0x10019168
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.10031c00
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
push esi
push ebp
call fcn.1001a9e0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x10019d50
cmp dword [esp + 0x1c], eax
je 0x1001919d
lea eax, [esp + 0x12]
push eax
push esi
call fcn.10031840
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
je 0x100191b3
mov dword [esi + 0x18], ebx
mov ecx, dword [esp + 0x78]
test edi, edi
je 0x10019be0
mov byte [esp + 0x11], 1
jmp 0x10019be0
mov ecx, dword [esp + 0x78]
or ebx, 0xffffffff
cmp byte [esp + 0x12], 0
jne 0x100190da
cmp dword [esi + 0x34], 4
je 0x10019be0
mov dword [esi + 0x34], 4
jmp 0x10019be0
lea eax, [esp + 0x13]
push eax
push esi
call fcn.10033110
mov edi, eax
add esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp + 0x18], edi
cmp byte [eax + 0x1ac], bl
je 0x10019237
xor edi, edi
or ebx, 0xffffffff
push edi
push edi
push esi
mov dword [esp + 0x24], edi
call fcn.100188d0
add esp, 0xc
cmp dword [esi + 0x34], 2
je case.0x10018f5a.1
mov eax, fcn.1002e180
mov dword [esi + 0x34], 2
test eax, eax
je case.0x10018f5a.1
push esi
call fcn.1002e180
jmp 0x10019bd9
test edi, edi
jne 0x1001928f
mov ecx, dword [esp + 0x78]
or ebx, 0xffffffff
jmp 0x100190da
lea eax, [esp + 0x12]
push eax
push 0
push 0
push esi
call fcn.10028430
add esp, 0x10
mov edi, eax
mov dword [esp + 0x18], edi
cmp byte [esp + 0x12], bl
je 0x10019275
test edi, edi
jne 0x1001927d
mov ecx, dword [esp + 0x78]
or ebx, 0xffffffff
jmp 0x100190da
test edi, edi
je case.0x10018f5a.1
push esi
call fcn.1001d4c0
push 1
push edi
push esi
call fcn.100188d0
add esp, 0x10
mov byte [esp + 0x11], 1
jmp case.0x10018f5a.1
cmp byte [esi + 0xd06], bl
je 0x100192b0
push esi
call fcn.1001a7d0
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
test edi, edi
jne 0x1001927d
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x1af], bl
je 0x100192d4
cmp dword [esi + 0x34], 8
je 0x100192cc
mov dword [esi + 0x34], 8
or ebx, 0xffffffff
jmp case.0x10018f5a.1
lea eax, [esp + 0x13]
push eax
push esi
call fcn.1001a690
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
jne 0x1001927d
cmp byte [esp + 0x13], bl
jne 0x100192bf
cmp dword [esi + 0x34], 7
je 0x100192ff
mov dword [esi + 0x34], 7
or ebx, 0xffffffff
jmp case.0x10018f5a.1
lea eax, [esp + 0x13]
push eax
push esi
call fcn.1001a710
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
jne 0x1001927d
cmp byte [esp + 0x13], bl
je case.0x10018f5a.1
cmp dword [esi + 0x34], 8
je 0x100192cc
mov dword [esi + 0x34], 8
or ebx, 0xffffffff
jmp case.0x10018f5a.1
cmp dword [esi + 0x1bc], ebx
je 0x100193bb
push 1
push esi
call fcn.10017cd0
push dword [esi + 0xdbc]
lea eax, [esi + 0xd8c]
push dword [esi + 0xd84]
push eax
lea eax, [esi + 0xd54]
push eax
push dword [esi + 0x1c0]
mov eax, dword [esi + 0x1bc]
call eax
push 0
push esi
mov edi, eax
call fcn.10017cd0
add esp, 0x24
test edi, edi
je 0x100193bb
push str.operation_aborted_by_pre_request_callback
push esi
call fcn.10028d00
mov edi, 0x2a
push esi
mov dword [esp + 0x24], edi
call fcn.1001d4c0
push 0
push edi
push esi
call fcn.100188d0
add esp, 0x18
mov byte [esp + 0x11], 1
jmp case.0x10018f5a.1
cmp byte [esi + 0x65d], 1
jne 0x100193ec
push 0
push dword [esi + 0x18]
call fcn.1002a170
add esp, 8
cmp dword [esi + 0x34], 0xe
je 0x100193de
mov dword [esi + 0x34], 0xe
xor edi, edi
or ebx, 0xffffffff
mov dword [esp + 0x18], edi
jmp case.0x10018f5a.1
mov eax, dword [esi + 0x18]
xor edi, edi
mov eax, dword [eax + 0x1c4]
mov eax, dword [eax + 8]
test eax, eax
je 0x1001940b
lea ecx, [esp + 0x14]
push ecx
push esi
call eax
add esp, 8
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x10019475
cmp byte [esp + 0x14], bl
jne 0x1001942e
cmp dword [esi + 0x34], 9
je 0x1001946d
mov dword [esi + 0x34], 9
or ebx, 0xffffffff
jmp case.0x10018f5a.1
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x1b5], bl
je 0x1001944e
cmp dword [esi + 0x34], 0xa
je 0x1001946d
mov dword [esi + 0x34], 0xa
or ebx, 0xffffffff
jmp case.0x10018f5a.1
cmp dword [esi + 0x34], 0xb
je 0x1001946d
mov eax, fcn.100176f0
mov dword [esi + 0x34], 0xb
test eax, eax
je 0x1001946d
push esi
call fcn.100176f0
add esp, 4
or ebx, 0xffffffff
jmp case.0x10018f5a.1
cmp edi, 0x37
jne 0x1001953e
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x1af], bl
je 0x1001953e
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], ebx
push eax
push esi
call fcn.1002e8e0
add esp, 8
test eax, eax
je 0x100194ae
mov edi, eax
mov byte [esp + 0x11], 1
mov dword [esp + 0x18], edi
push esi
call fcn.1001d4c0
push 0
push edi
push esi
call fcn.100188d0
mov ecx, dword [esp + 0x2c]
add esp, 0x10
test ecx, ecx
je 0x1001952d
test eax, eax
je 0x100194e3
cmp eax, 0x37
je 0x100194e3
mov edi, eax
push ecx
mov dword [esp + 0x1c], edi
call dword [0x102e9004]
jmp 0x10019bd9
push 2
push ecx
push esi
call fcn.1002dc70
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x10019519
cmp dword [esi + 0x34], 2
je 0x10019514
mov eax, fcn.1002e180
mov dword [esi + 0x34], 2
test eax, eax
je 0x10019514
push esi
call fcn.1002e180
add esp, 4
or ebx, 0xffffffff
xor edi, edi
mov ecx, dword [esp + 0x1c]
push ecx
mov dword [esp + 0x1c], edi
call dword [0x102e9004]
jmp 0x10019bd9
push ecx
mov byte [esp + 0x15], 1
call dword [0x102e9004]
jmp 0x10019bd9
push esi
call fcn.1001d4c0
add esp, 4
cmp dword [esi + 0x18], ebx
je 0x10019558
push 0
push edi
push esi
call fcn.100188d0
add esp, 0xc
mov byte [esp + 0x11], 1
jmp case.0x10018f5a.1
lea eax, [esp + 0x14]
push eax
push esi
call fcn.1001a750
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
jne 0x100195a7
cmp byte [esp + 0x14], bl
je case.0x10018f5a.1
mov eax, dword [esi + 0x18]
xor ecx, ecx
cmp byte [eax + 0x1b5], cl
sete cl
add ecx, 0xa
push ecx
push esi
call fcn.10018810
add esp, 8
or ebx, 0xffffffff
jmp case.0x10018f5a.1
push esi
call fcn.1001d4c0
push 0
push edi
push esi
call fcn.100188d0
add esp, 0x10
mov byte [esp + 0x11], 1
jmp case.0x10018f5a.1
mov eax, dword [esi + 0x18]
xor ecx, ecx
mov dword [esp + 0x30], ecx
xor edi, edi
mov eax, dword [eax + 0x1c4]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x100195ec
lea ecx, [esp + 0x30]
push ecx
push esi
call eax
mov ecx, dword [esp + 0x38]
add esp, 8
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x100195a7
test ecx, ecx
je case.0x10018f5a.1
xor eax, eax
cmp ecx, 1
sete al
lea eax, [eax*2 + 9]
push eax
push esi
call fcn.10018810
add esp, 8
or ebx, 0xffffffff
jmp case.0x10018f5a.1
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x1bb], bl
je 0x10019631
push ebp
call fcn.1001a610
add esp, 4
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x1e0], 0xffffffff
jne 0x1001965b
cmp dword [eax + 0x1e4], 0xffffffff
jne 0x1001965b
cmp dword [esi + 0x34], 0xe
je 0x10019668
mov dword [esi + 0x34], 0xe
or ebx, 0xffffffff
jmp case.0x10018f5a.1
cmp dword [esi + 0x34], 0xc
je 0x10019668
mov dword [esi + 0x34], 0xc
or ebx, 0xffffffff
jmp case.0x10018f5a.1
push esi
call fcn.100380e0
add esp, 4
test eax, eax
je 0x10019688
mov edi, 0x2a
mov dword [esp + 0x18], edi
jmp 0x100196aa
mov ecx, dword [esp + 0x78]
sub esp, 0x10
mov eax, esp
movups xmm0, xmmword [ecx]
push esi
movups xmmword [eax], xmm0
call fcn.10039350
mov edi, eax
add esp, 0x14
mov dword [esp + 0x18], edi
test edi, edi
je 0x100196e0
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x1c4]
test byte [eax + 0x4c], 2
jne 0x100196c9
cmp edi, 0x5c
je 0x100196c9
push 2
push ecx
call fcn.1002a170
add esp, 8
push esi
call fcn.1001d4c0
push 1
push edi
push esi
call fcn.100188d0
add esp, 0x10
jmp case.0x10018f5a.1
mov edx, dword [esi + 0x208]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x20c]
mov eax, edx
or eax, ecx
movlpd qword [esp + 0x34], xmm0
je 0x10019749
mov ebp, dword [esp + 0x78]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0x768]
push ecx
push edx
push dword [esi + 0x77c]
movups xmmword [eax], xmm0
push dword [esi + 0x778]
push dword [esi + 0x6c4]
push dword [esi + 0x6c0]
call fcn.10037c50
mov ebp, dword [esp + 0xac]
add esp, 0x38
mov dword [esp + 0x20], edx
jmp 0x10019755
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
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 0x100197c0
mov ebp, dword [esp + 0x78]
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 + 0x6bc]
push dword [esi + 0x6b8]
call fcn.10037c50
mov ebp, dword [esp + 0xac]
add esp, 0x38
mov ecx, eax
jmp 0x100197c8
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x20]
jne 0x10019802
mov eax, ecx
or eax, edx
jne 0x10019802
cmp dword [esi + 0x34], 0xc
je 0x100197e5
mov dword [esi + 0x34], 0xc
mov ecx, dword [esp + 0x78]
sub esp, 0x10
mov eax, esp
movups xmm0, xmmword [ecx]
push esi
movups xmmword [eax], xmm0
call fcn.10038270
add esp, 0x14
jmp case.0x10018f5a.1
cmp dword [esp + 0x20], edx
jl 0x10019827
mov eax, dword [esp + 0x1c]
jg 0x10019812
cmp eax, ecx
jb 0x10019827
push 0xb
push dword [esp + 0x24]
push eax
push esi
call fcn.100177e0
add esp, 0x10
jmp case.0x10018f5a.1
push 0xb
push edx
push ecx
push esi
call fcn.100177e0
add esp, 0x10
jmp case.0x10018f5a.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 + 0x34], xmm0
je 0x100198aa
mov ebp, dword [esp + 0x78]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0x768]
push ecx
push edx
push dword [esi + 0x77c]
movups xmmword [eax], xmm0
push dword [esi + 0x778]
push dword [esi + 0x6c4]
push dword [esi + 0x6c0]
call fcn.10037c50
mov ebp, dword [esp + 0xac]
add esp, 0x38
mov dword [esp + 0x24], edx
jmp 0x100198b6
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
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 0x10019925
mov ebp, dword [esp + 0x78]
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 + 0x6bc]
push dword [esi + 0x6b8]
call fcn.10037c50
mov ebp, dword [esp + 0xac]
add esp, 0x38
mov ecx, eax
mov dword [esp + 0x28], eax
jmp 0x10019931
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 + 0x34], edx
jne 0x10019b24
mov eax, ecx
or eax, edx
jne 0x10019b24
lea eax, [esp + 0x15]
push eax
push esi
call fcn.1002e550
add esp, 8
mov edi, eax
mov dword [esp + 0x18], edi
cmp byte [esp + 0x15], bl
jne 0x100199a7
cmp edi, 0x38
je 0x100199a7
cmp edi, 0x5c
jne 0x100199df
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x1c4]
test byte [eax + 0x4c], 2
jne 0x10019990
cmp edi, 0x5c
je 0x10019990
push 2
push ecx
call fcn.1002a170
add esp, 8
push esi
call fcn.1001d4c0
push 1
push edi
push esi
call fcn.100188d0
add esp, 0x10
jmp case.0x10018f5a.1
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.1002e8e0
add esp, 8
test eax, eax
jne 0x100199d5
cmp dword [esp + 0x1c], ebx
setne al
mov byte [esp + 0x16], al
test al, al
je 0x100199df
xor edi, edi
mov byte [esp + 0x15], 1
mov dword [esp + 0x18], edi
jmp 0x100199ed
test edi, edi
jne 0x10019971
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x10019971
cmp byte [esp + 0x15], bl
je 0x10019b04
push esi
call fcn.1001d4c0
add esp, 4
cmp dword [esi + 0x110], ebx
jne 0x10019a82
cmp byte [esp + 0x16], bl
jne 0x10019aac
cmp dword [esi + 0x10c], ebx
je 0x10019a6d
push dword [esp + 0x1c]
call dword [0x102e9004]
mov eax, dword [esi + 0x10c]
push 1
push eax
push esi
mov dword [esp + 0x2c], eax
mov dword [esi + 0x10c], ebx
call fcn.1002dc70
push dword [esp + 0x2c]
mov edi, eax
mov dword [esp + 0x2c], edi
call dword [0x102e9004]
add esp, 0x14
test edi, edi
je 0x10019a6d
push 1
push edi
push esi
mov byte [esp + 0x1d], 1
call fcn.100188d0
mov edi, eax
add esp, 0xc
mov dword [esp + 0x18], edi
test edi, edi
jne case.0x10018f5a.1
cmp dword [esi + 0x34], 0xe
je 0x10019a7a
mov dword [esi + 0x34], 0xe
or ebx, 0xffffffff
jmp case.0x10018f5a.1
cmp byte [esp + 0x16], bl
jne 0x10019aac
push dword [esp + 0x1c]
call dword [0x102e9004]
mov eax, dword [esi + 0x110]
add esp, 4
mov dword [esp + 0x1c], eax
mov edi, 3
mov dword [esi + 0x110], ebx
jmp 0x10019ab1
mov edi, 2
push 0
push 0
push esi
call fcn.100188d0
push edi
push dword [esp + 0x2c]
push esi
call fcn.1002dc70
mov edi, eax
add esp, 0x18
mov dword [esp + 0x18], edi
test edi, edi
jne 0x10019af5
cmp dword [esi + 0x34], 2
je 0x10019af2
mov eax, fcn.1002e180
mov dword [esi + 0x34], 2
test eax, eax
je 0x10019af2
push esi
call fcn.1002e180
add esp, 4
or ebx, 0xffffffff
push dword [esp + 0x1c]
call dword [0x102e9004]
jmp 0x10019bd9
cmp byte [esi + 0xcf3], bl
je case.0x10018f5a.1
push 8
push 0
push 0
push esi
call fcn.100177e0
add esp, 0x10
jmp case.0x10018f5a.1
mov ecx, dword [esp + 0x78]
sub esp, 0x10
mov eax, esp
movups xmm0, xmmword [ecx]
push esi
movups xmmword [eax], xmm0
call fcn.10038270
add esp, 0x14
cmp dword [esi + 0x34], 0xd
je 0x10019b49
mov dword [esi + 0x34], 0xd
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
cmp edx, ecx
jl 0x10019b73
jg 0x10019b61
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x20], eax
jb 0x10019b77
push 0xb
push edx
push dword [esp + 0x28]
push esi
call fcn.100177e0
add esp, 0x10
jmp case.0x10018f5a.1
mov eax, dword [esp + 0x28]
push 0xb
push ecx
push eax
push esi
call fcn.100177e0
add esp, 0x10
jmp case.0x10018f5a.1
mov eax, dword [esi + 0x18]
or ebx, 0xffffffff
test eax, eax
je 0x10019bb7
cmp byte [eax + 0x1bb], 0
je 0x10019ba2
push ebp
call fcn.1001a610
add esp, 4
push 0
push edi
push esi
call fcn.100188d0
add esp, 0xc
test edi, edi
cmove edi, eax
mov dword [esp + 0x18], edi
cmp dword [esi + 0x34], 0xf
je case.0x10018f5a.1
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x34], 0xf
dec dword [eax + 0x10]
mov eax, fcn.10017710
test eax, eax
je case.0x10018f5a.1
push esi
call fcn.10017710
add esp, 4
mov ecx, dword [esp + 0x78]
cmp dword [esi + 0x18], 0
je 0x10019c1c
mov eax, dword [esi + 0x34]
cmp eax, 2
jl 0x10019c1c
cmp eax, 8
jge 0x10019c1c
cmp ebx, 0xffffffff
je 0x10019c1c
mov al, byte [ebp + 0x106]
test al, al
jne 0x10019c1c
push 1
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x19]
push eax
push ecx
push esi
call fcn.10018d00
mov edi, dword [esp + 0x2c]
add esp, 0x14
cmp dword [esi + 0x34], 0xf
jge 0x10019d34
test edi, edi
je 0x10019cbd
push ebp
call fcn.1001a610
mov ebx, dword [esi + 0x18]
add esp, 4
test ebx, ebx
je 0x10019c86
cmp byte [esp + 0x11], 0
je 0x10019c95
cmp edi, 0x1c
push esi
push ebx
sete byte [esp + 0x44]
call fcn.10028560
push 0
lea eax, [esi + 0x28]
push eax
lea eax, [ebx + 0x21c]
push eax
call fcn.10030b90
push 1
push ebx
push esi
mov dword [esi + 0x18], 0
call fcn.10020730
push dword [esp + 0x5c]
push ebx
push esi
call fcn.10023cf0
add esp, 0x2c
jmp 0x10019c95
cmp dword [esi + 0x34], 2
jne 0x10019c95
push esi
call fcn.1001d4c0
add esp, 4
cmp dword [esi + 0x34], 0xf
je 0x10019d2d
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x34], 0xf
dec dword [eax + 0x10]
mov eax, fcn.10017710
test eax, eax
je 0x10019d2d
push esi
call fcn.10017710
jmp 0x10019d2a
cmp dword [esi + 0x18], 0
je 0x10019d30
push esi
call fcn.100380e0
add esp, 4
test eax, eax
je 0x10019d30
push 2
push dword [esi + 0x18]
mov edi, 0x2a
mov dword [esp + 0x20], edi
call fcn.1002a170
mov ecx, dword [esi + 0x34]
xor eax, eax
add esp, 8
cmp ecx, 0xe
setge al
add eax, 0xe
cmp ecx, eax
je 0x10019d2d
mov dword [esi + 0x34], eax
cmp ecx, 0xe
jl 0x10019d06
mov eax, dword [esi + 0x7c]
dec dword [eax + 0x10]
xor eax, eax
cmp ecx, 0xe
setge al
cmp dword [eax*4 + 0x102cd500], 0
je 0x10019d2d
xor eax, eax
cmp ecx, 0xe
push esi
setge al
mov eax, dword [eax*4 + 0x102cd500]
call eax
add esp, 4
or ebx, 0xffffffff
cmp dword [esi + 0x34], 0xf
je 0x10019d67
cmp ebx, 0xffffffff
je 0x10018ee1
mov al, byte [ebp + 0x106]
test al, al
jne 0x10018ee1
mov dword [esi + 0x38], edi
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov eax, dword [esi + 0x640]
test eax, eax
je 0x10019d7a
push edi
push esi
call eax
add esp, 8
jmp 0x10019d9b
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 dword [ebp + 0x18]
push eax
call fcn.10030b20
add esp, 0x10
cmp dword [esi + 0x34], 0x10
je 0x10019da8
mov dword [esi + 0x34], 0x10
lea eax, [esi + 0x1c]
push eax
push esi
push dword [ebp + 0x38]
lea eax, [ebp + 0x34]
push eax
call fcn.10030b20
push esi
push ebp
call fcn.1001ad40
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x60
ret