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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb44
push ebx
push esi
lea ebx, [ecx + 0x18]
mov dword [esp + 0x30], ecx
push edi
mov dword [esp + 0x24], ebx
mov ecx, ebx
mov edi, 4
call fcn.036ae870
mov esi, eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x44], 0
add esi, 2
je 0x36ac417
xor ecx, ecx
mov eax, esi
mul edi
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], esi
mov ecx, ebx
call fcn.036ae870
mov esi, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
test esi, esi
je 0x36ac479
xor ebx, ebx
mul edi
seto bl
xor ecx, ecx
neg ebx
or ebx, eax
add ebx, 4
setb cl
neg ecx
or ecx, ebx
call fcn.03707780
test eax, eax
je 0x36ac46d
lea ecx, [esi - 1]
mov dword [eax], esi
lea edx, [eax + 4]
test ecx, ecx
js 0x36ac467
inc ecx
mov edi, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0x2c], edx
jmp 0x36ac475
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], esi
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ac8bf
push 0x100f7c84
push 2
lea ecx, [esp + 0x234]
call fcn.0363b9e0
mov esi, eax
lea ecx, [esp + 0xa0]
xor eax, eax
mov edx, 0x1010b670
cmp eax, edx
mov ebx, 0x100f93f8
cmove edx, ebx
call fcn.0366ec30
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x36ac574
mov edx, dword [esi + 4]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x10], edx
mov eax, ecx
cmp bx, word [ecx]
je 0x36ac4ec
lea eax, [eax + 2]
xor ebx, ebx
inc edi
cmp bx, word [eax]
jne 0x36ac4e1
lea ebx, [edi + edx]
cmp ebx, dword [esi + 8]
jb 0x36ac555
mov ecx, dword [esi]
lea eax, [ebx + 0xff]
mov dword [esp + 0x14], ecx
mov edx, 2
mov dword [esi + 8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
test eax, eax
je 0x36ac540
mov edx, dword [esi + 4]
lea edx, [edx*2 + 2]
push edx
push eax
push ecx
call fcn.037136d0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, eax
call fcn.03707920
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esi], eax
lea eax, [edi*2 + 2]
mov dword [esi + 4], ebx
push eax
mov eax, dword [esi]
push ecx
lea eax, [eax + edx*2]
push eax
call fcn.037136d0
add esp, 0xc
mov ebx, 0x100f93f8
mov ecx, dword [esp + 0xa0]
test ecx, ecx
je 0x36ac5a5
call fcn.03707920
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
xor eax, eax
lea ecx, [esp + 0x88]
mov edx, 0x1010b6c4
cmp eax, edx
cmove edx, ebx
call fcn.0366ec30
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x36ac673
mov edx, dword [esi + 4]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x10], edx
mov eax, ecx
cmp bx, word [ecx]
je 0x36ac5eb
lea ecx, [ecx]
lea eax, [eax + 2]
xor ebx, ebx
inc edi
cmp bx, word [eax]
jne 0x36ac5e0
lea ebx, [edi + edx]
cmp ebx, dword [esi + 8]
jb 0x36ac654
mov ecx, dword [esi]
lea eax, [ebx + 0xff]
mov dword [esp + 0x14], ecx
mov edx, 2
mov dword [esi + 8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
test eax, eax
je 0x36ac63f
mov edx, dword [esi + 4]
lea edx, [edx*2 + 2]
push edx
push eax
push ecx
call fcn.037136d0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, eax
call fcn.03707920
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esi], eax
lea eax, [edi*2 + 2]
mov dword [esi + 4], ebx
push eax
mov eax, dword [esi]
push ecx
lea eax, [eax + edx*2]
push eax
call fcn.037136d0
add esp, 0xc
mov ebx, 0x100f93f8
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x36ac6a4
call fcn.03707920
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x24]
call fcn.036ae870
push eax
lea eax, [esp + 0x254]
push 0x100f9404
push eax
call dword [0x100f5304]
lea eax, [esp + 0x25c]
add esp, 0xc
test eax, eax
lea ecx, [esp + 0xb8]
mov edx, eax
cmove edx, ebx
call fcn.0366ec30
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x36ac793
mov edx, dword [esi + 4]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x10], edx
mov eax, ecx
cmp bx, word [ecx]
je 0x36ac70b
mov edi, edi
lea eax, [eax + 2]
xor ebx, ebx
inc edi
cmp bx, word [eax]
jne 0x36ac700
lea ebx, [edi + edx]
cmp ebx, dword [esi + 8]
jb 0x36ac774
mov ecx, dword [esi]
lea eax, [ebx + 0xff]
mov dword [esp + 0x14], ecx
mov edx, 2
mov dword [esi + 8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
test eax, eax
je 0x36ac75f
mov edx, dword [esi + 4]
lea edx, [edx*2 + 2]
push edx
push eax
push ecx
call fcn.037136d0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, eax
call fcn.03707920
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esi], eax
lea eax, [edi*2 + 2]
mov dword [esi + 4], ebx
push eax
mov eax, dword [esi]
push ecx
lea eax, [eax + edx*2]
push eax
call fcn.037136d0
add esp, 0xc
mov ebx, 0x100f93f8
mov ecx, dword [esp + 0xb8]
test ecx, ecx
je 0x36ac7c4
call fcn.03707920
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
xor eax, eax
lea ecx, [esp + 0x70]
mov edx, 0x10102b84
cmp eax, edx
cmove edx, ebx
call fcn.0366ec30
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x36ac88e
mov edx, dword [esi + 4]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x10], edx
mov eax, ecx
cmp bx, word [ecx]
je 0x36ac80b
lea esp, [esp]
lea eax, [eax + 2]
xor ebx, ebx
inc edi
cmp bx, word [eax]
jne 0x36ac800
lea ebx, [edi + edx]
cmp ebx, dword [esi + 8]
jb 0x36ac874
mov ecx, dword [esi]
lea eax, [ebx + 0xff]
mov dword [esp + 0x14], ecx
mov edx, 2
mov dword [esi + 8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
test eax, eax
je 0x36ac85f
mov edx, dword [esi + 4]
lea edx, [edx*2 + 2]
push edx
push eax
push ecx
call fcn.037136d0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, eax
call fcn.03707920
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esi], eax
lea eax, [edi*2 + 2]
mov dword [esi + 4], ebx
push eax
mov eax, dword [esi]
push ecx
lea eax, [eax + edx*2]
push eax
call fcn.037136d0
add esp, 0xc
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x36ac8b3
call fcn.03707920
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea ecx, [esp + 0x22c]
call fcn.0363bfe0
cmp dword [esp + 0x44], 0x40
jbe 0x36ac913
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ac913
push 0x1010b6dc
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x1d4]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0x1c0]
call fcn.0363bfe0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 0x14]
mov dword [ecx], eax
mov eax, dword [edx + 0x10]
mov dword [ecx + 4], eax
call dword [0x100f5284]
mov ebx, dword [esp + 0x24]
mov edi, eax
cmp edi, dword [ebx + 8]
lea esi, [ebx + 8]
je 0x36ac961
cmp dword [esi], 0
jne 0x36acbd2
push 0
push edi
push esi
call dword [0x100f5280]
test eax, eax
sete al
test al, al
je 0x36acbd2
mov dword [ebx + 0x10], 0
inc dword [ebx + 0x10]
mov al, 1
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x14], edi
test al, al
je 0x36ac9a4
dec dword [ebx + 0x10]
jne 0x36ac9a4
push 0
push esi
mov dword [ebx + 0x10], 0
call dword [0x100f528c]
cmp dword [ebx + 0xc], 0
lea eax, [ebx + 0xc]
jle 0x36ac9a4
push eax
call dword [0x100f5290]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
test edi, edi
je 0x36ad2b3
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], edi
lea eax, [ecx + 8]
mov dword [esp + 0x3c], eax
nop
call dword [0x100f5284]
mov esi, eax
lea eax, [ebx + 8]
cmp esi, dword [eax]
je 0x36ac9f6
cmp dword [eax], 0
jne 0x36acbe8
push 0
push esi
push eax
call dword [0x100f5280]
test eax, eax
sete al
test al, al
je 0x36acbe8
mov dword [ebx + 0x10], 0
inc dword [ebx + 0x10]
mov al, 1
mov ecx, dword [esp + 0x14]
mov esi, ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x14], ecx
test al, al
je 0x36aca42
dec dword [ebx + 0x10]
jne 0x36aca42
push 0
lea eax, [ebx + 8]
mov dword [ebx + 0x10], 0
push eax
call dword [0x100f528c]
cmp dword [ebx + 0xc], 0
lea eax, [ebx + 0xc]
jle 0x36aca42
push eax
call dword [0x100f5290]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
mov esi, dword [esi + 8]
test esi, esi
je 0x36aca4f
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ad273
push 0x100f7c84
push 2
lea ecx, [esp + 0x1ec]
call fcn.0363b9e0
mov edi, eax
lea ecx, [esp + 0x7c]
xor eax, eax
mov edx, 0x1010b670
cmp eax, edx
mov eax, 0x100f93f8
cmove edx, eax
call fcn.0366ec30
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x36acb4c
mov edx, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x10], edx
mov eax, ecx
xor edx, edx
cmp dx, word [ecx]
mov edx, dword [esp + 0x10]
je 0x36acac7
lea eax, [eax + 2]
xor ecx, ecx
inc ebx
cmp cx, word [eax]
jne 0x36acab8
mov ecx, dword [esp + 0xc]
lea eax, [ebx + edx]
cmp eax, dword [edi + 8]
jb 0x36acb32
mov ecx, dword [edi]
add eax, 0xff
mov dword [esp + 0x1c], ecx
mov edx, 2
mov dword [edi + 8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
test eax, eax
je 0x36acb1a
mov edx, dword [edi + 4]
lea edx, [edx*2 + 2]
push edx
push eax
push ecx
call fcn.037136d0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, eax
call fcn.03707920
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov dword [edi], eax
lea eax, [ebx + edx]
mov dword [edi + 4], eax
lea eax, [ebx*2 + 2]
push eax
mov eax, dword [edi]
push ecx
lea eax, [eax + edx*2]
push eax
call fcn.037136d0
add esp, 0xc
mov ebx, dword [esp + 0x7c]
test ebx, ebx
je 0x36acc87
lea eax, [esp + 0x130]
mov dword [esp + 0xd4], 0
mov dword [esp + 0x148], eax
lea eax, [esp + 0x4b]
push ecx
mov dword [esp + 0xe0], 0
lea ecx, [esp + 0x134]
mov dword [esp + 0xd4], 0x1011f690
mov dword [esp + 0xdc], 0x1011f68c
movdqa xmm0, xmmword [esp + 0xd4]
mov dword [esp + 0x134], 0
push eax
mov dword [esp + 0x13c], 0xffffffff
movdqu xmmword [esp + 0x140], xmm0
call fcn.037039a0
test al, al
jne 0x36acbfe
jmp 0x36acc09
push ecx
push edi
mov ecx, ebx
call fcn.03621400
test al, al
jne 0x36ac961
jmp 0x36ac966
push ecx
push esi
mov ecx, ebx
call fcn.03621400
test al, al
jne 0x36ac9f6
jmp 0x36ac9fb
mov eax, dword [esp + 0x140]
inc dword [eax]
mov al, 1
push ebx
push 1
push dword [0x1011f2ec]
mov byte [esp + 0x158], al
call dword [0x100f5100]
cmp byte [esp + 0x14c], 0
je 0x36acc69
mov ebx, dword [esp + 0x148]
mov eax, dword [ebx + 0x10]
dec dword [eax]
jne 0x36acc69
mov eax, dword [ebx + 0x10]
push 0
mov dword [eax], 0
push dword [ebx + 8]
call dword [0x100f528c]
cmp dword [ebx + 0xc], 0
lea eax, [ebx + 0xc]
jle 0x36acc69
push eax
call dword [0x100f5290]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
xor eax, eax
lea ecx, [esp + 0x94]
mov edx, 0x1010b6f0
cmp eax, edx
mov eax, 0x100f93f8
cmove edx, eax
call fcn.0366ec30
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x36acd5c
mov edx, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x10], edx
mov eax, ecx
xor edx, edx
cmp dx, word [ecx]
mov edx, dword [esp + 0x10]
je 0x36accd7
lea eax, [eax + 2]
xor ecx, ecx
inc ebx
cmp cx, word [eax]
jne 0x36accc8
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + edx]
cmp eax, dword [edi + 8]
jb 0x36acd42
mov ecx, dword [edi]
add eax, 0xff
mov dword [esp + 0xc], ecx
mov edx, 2
mov dword [edi + 8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
test eax, eax
je 0x36acd2a
mov edx, dword [edi + 4]
lea edx, [edx*2 + 2]
push edx
push eax
push ecx
call fcn.037136d0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ecx, eax
call fcn.03707920
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [edi], eax
lea eax, [ebx + edx]
mov dword [edi + 4], eax
lea eax, [ebx*2 + 2]
push eax
mov eax, dword [edi]
push ecx
lea eax, [eax + edx*2]
push eax
call fcn.037136d0
add esp, 0xc
mov ebx, dword [esp + 0x94]
test ebx, ebx
je 0x36ace6f
lea eax, [esp + 0x160]
mov dword [esp + 0x104], 0
mov dword [esp + 0x178], eax
lea eax, [esp + 0x42]
push ecx
mov dword [esp + 0x110], 0
lea ecx, [esp + 0x164]
mov dword [esp + 0x104], 0x1011f690
mov dword [esp + 0x10c], 0x1011f68c
movdqa xmm0, xmmword [esp + 0x104]
mov dword [esp + 0x164], 0
push eax
mov dword [esp + 0x16c], 0xffffffff
movdqu xmmword [esp + 0x170], xmm0
call fcn.037039a0
test al, al
je 0x36acdee
mov eax, dword [esp + 0x170]
inc dword [eax]
mov al, 1
push ebx
push 1
push dword [0x1011f2ec]
mov byte [esp + 0x188], al
call dword [0x100f5100]
cmp byte [esp + 0x17c], 0
je 0x36ace4e
mov ebx, dword [esp + 0x178]
mov eax, dword [ebx + 0x10]
dec dword [eax]
jne 0x36ace4e
mov eax, dword [ebx + 0x10]
push 0
mov dword [eax], 0
push dword [ebx + 8]
call dword [0x100f528c]
cmp dword [ebx + 0xc], 0
lea eax, [ebx + 0xc]
jle 0x36ace4e
push eax
call dword [0x100f5290]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
push dword [esi + 0x24]
lea eax, [esp + 0x354]
push 0x100f9404
push eax
call dword [0x100f5304]
lea eax, [esp + 0x35c]
add esp, 0xc
mov edx, eax
lea ecx, [esp + 0xac]
test eax, eax
mov eax, 0x100f93f8
cmove edx, eax
call fcn.0366ec30
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x36acf64
mov edx, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x10], edx
mov eax, ecx
xor edx, edx
cmp dx, word [ecx]
mov edx, dword [esp + 0x10]
je 0x36acedf
jmp 0x36aced0
lea eax, [eax + 2]
xor ecx, ecx
inc ebx
cmp cx, word [eax]
jne 0x36aced0
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + edx]
cmp eax, dword [edi + 8]
jb 0x36acf4a
mov ecx, dword [edi]
add eax, 0xff
mov dword [esp + 0xc], ecx
mov edx, 2
mov dword [edi + 8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
test eax, eax
je 0x36acf32
mov edx, dword [edi + 4]
lea edx, [edx*2 + 2]
push edx
push eax
push ecx
call fcn.037136d0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ecx, eax
call fcn.03707920
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [edi], eax
lea eax, [ebx + edx]
mov dword [edi + 4], eax
lea eax, [ebx*2 + 2]
push eax
mov eax, dword [edi]
push ecx
lea eax, [eax + edx*2]
push eax
call fcn.037136d0
add esp, 0xc
mov ebx, dword [esp + 0xac]
test ebx, ebx
je 0x36ad077
lea eax, [esp + 0x1a0]
mov dword [esp + 0x154], 0
mov dword [esp + 0x1b8], eax
lea eax, [esp + 0x3b]
push ecx
mov dword [esp + 0x160], 0
lea ecx, [esp + 0x1a4]
mov dword [esp + 0x154], 0x1011f690
mov dword [esp + 0x15c], 0x1011f68c
movdqa xmm0, xmmword [esp + 0x154]
mov dword [esp + 0x1a4], 0
push eax
mov dword [esp + 0x1ac], 0xffffffff
movdqu xmmword [esp + 0x1b0], xmm0
call fcn.037039a0
test al, al
je 0x36acff6
mov eax, dword [esp + 0x1b0]
inc dword [eax]
mov al, 1
push ebx
push 1
push dword [0x1011f2ec]
mov byte [esp + 0x1c8], al
call dword [0x100f5100]
cmp byte [esp + 0x1bc], 0
je 0x36ad056
mov ebx, dword [esp + 0x1b8]
mov eax, dword [ebx + 0x10]
dec dword [eax]
jne 0x36ad056
mov eax, dword [ebx + 0x10]
push 0
mov dword [eax], 0
push dword [ebx + 8]
call dword [0x100f528c]
cmp dword [ebx + 0xc], 0
lea eax, [ebx + 0xc]
jle 0x36ad056
push eax
call dword [0x100f5290]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
xor eax, eax
lea ecx, [esp + 0xc4]
mov edx, 0x1010b700
cmp eax, edx
mov eax, 0x100f93f8
cmove edx, eax
call fcn.0366ec30
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x36ad14c
mov edx, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x10], edx
mov eax, ecx
xor edx, edx
cmp dx, word [ecx]
mov edx, dword [esp + 0x10]
je 0x36ad0c7
lea eax, [eax + 2]
xor ecx, ecx
inc ebx
cmp cx, word [eax]
jne 0x36ad0b8
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + edx]
cmp eax, dword [edi + 8]
jb 0x36ad132
mov ecx, dword [edi]
add eax, 0xff
mov dword [esp + 0xc], ecx
mov edx, 2
mov dword [edi + 8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.03707780
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
test eax, eax
je 0x36ad11a
mov edx, dword [edi + 4]
lea edx, [edx*2 + 2]
push edx
push eax
push ecx
call fcn.037136d0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ecx, eax
call fcn.03707920
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [edi], eax
lea eax, [ebx + edx]
mov dword [edi + 4], eax
lea eax, [ebx*2 + 2]
push eax
mov eax, dword [edi]
push ecx
lea eax, [eax + edx*2]
push eax
call fcn.037136d0
add esp, 0xc
mov edi, dword [esp + 0xc4]
test edi, edi
je 0x36ad25f
lea eax, [esp + 0x180]
mov dword [esp + 0x124], 0
mov dword [esp + 0x198], eax
lea eax, [esp + 0x43]
push ecx
mov dword [esp + 0x130], 0
lea ecx, [esp + 0x184]
mov dword [esp + 0x124], 0x1011f690
mov dword [esp + 0x12c], 0x1011f68c
movdqa xmm0, xmmword [esp + 0x124]
mov dword [esp + 0x184], 0
push eax
mov dword [esp + 0x18c], 0xffffffff
movdqu xmmword [esp + 0x190], xmm0
call fcn.037039a0
test al, al
je 0x36ad1de
mov eax, dword [esp + 0x190]
inc dword [eax]
mov al, 1
push edi
push 1
push dword [0x1011f2ec]
mov byte [esp + 0x1a8], al
call dword [0x100f5100]
cmp byte [esp + 0x19c], 0
je 0x36ad23e
mov edi, dword [esp + 0x198]
mov eax, dword [edi + 0x10]
dec dword [eax]
jne 0x36ad23e
mov eax, dword [edi + 0x10]
push 0
mov dword [eax], 0
push dword [edi + 8]
call dword [0x100f528c]
cmp dword [edi + 0xc], 0
lea eax, [edi + 0xc]
jle 0x36ad23e
push eax
call dword [0x100f5290]
mov eax, dword [edi + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
lea ecx, [esp + 0x1e4]
call fcn.0363bfe0
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 0x44]
mov dword [ecx], eax
mov ecx, dword [edi]
test ecx, ecx
je 0x36ad28e
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
mov dword [edi], 0
mov dword [edi], esi
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
add dword [esp + 0x3c], 4
add edi, 4
cmp dword [esp + 0x14], 0
mov dword [esp + 0x20], edi
jne 0x36ac9c0
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ad300
push 0x1010b724
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x258]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0x244]
call fcn.0363bfe0
mov ebx, dword [esp + 0x28]
push 0xffffffffffffffff
push 0
push ebx
push dword [esp + 0x50]
call dword [0x100f5294]
mov ecx, dword [0x1011f360]
mov edi, eax
mov edx, dword [ecx]
call dword [edx + 0xf8]
test eax, eax
je 0x36ad39a
push 0x1010b744
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x234]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
push edi
mov esi, eax
lea eax, [esp + 0x754]
push 0x100f9404
push eax
call dword [0x100f5304]
add esp, 0xc
lea eax, [esp + 0x750]
push 0x10102b84
push ecx
push eax
mov ecx, esi
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0x220]
call fcn.0363bfe0
test edi, edi
jne 0x36ad44d
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x41]
push ecx
push eax
lea esi, [ecx + 0x38]
mov ecx, esi
call fcn.03621390
test al, al
jne 0x36ad3be
xor bl, bl
jmp 0x36ad3c3
inc dword [esi + 0x10]
mov bl, 1
mov ecx, esi
call fcn.036ae7a0
mov dword [esp + 0x4c], eax
test eax, eax
je 0x36ad3f1
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x4c]
mov ecx, esi
push eax
call fcn.036ae800
push eax
mov ecx, edi
call fcn.03678e70
cmp dword [esp + 0x4c], 0
jne 0x36ad3d6
mov ecx, esi
call fcn.03679050
test bl, bl
je 0x36ad432
dec dword [esi + 0x10]
jne 0x36ad432
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
call dword [0x100f528c]
cmp dword [esi + 0xc], 0
lea eax, [esi + 0xc]
jle 0x36ad432
push eax
call dword [0x100f5290]
mov eax, dword [esi + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
lea ecx, [esp + 0x2c]
call fcn.036ae9e0
mov ecx, dword [esp + 0x28]
call fcn.03707920
mov ebx, dword [esp + 0x24]
jmp 0x36ac3da
cmp edi, 1
je 0x36ad9ea
lea ebx, [edi - 2]
test ebx, ebx
js 0x36ad95c
mov ecx, dword [esp + 0x24]
call fcn.036ae870
cmp ebx, eax
jge 0x36ad95c
mov esi, dword [esp + 0x2c]
mov esi, dword [esi + ebx*4]
test esi, esi
je 0x36ad483
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ad59a
mov ebx, dword [esi + 0x24]
push 0x1010b7a8
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x21c]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
push ebx
mov edi, eax
lea eax, [esp + 0x954]
push 0x100f9404
push eax
call dword [0x100f5304]
add esp, 0xc
lea eax, [esp + 0x950]
mov ecx, edi
push eax
call fcn.0363c0c0
push dword [esi + 0x48]
lea ecx, [esp + 0xe4]
mov edi, eax
call fcn.0363c230
push 0x1010b7e0
mov ecx, edi
mov ebx, eax
call fcn.0363c0c0
mov edx, dword [ebx]
mov edi, eax
lea eax, [esp + 0x60]
mov ecx, ebx
push eax
call dword [edx]
push dword [esp + 0x60]
mov ecx, edi
call fcn.0363c0c0
mov ecx, dword [esp + 0x60]
mov edi, eax
test ecx, ecx
je 0x36ad551
call fcn.03707920
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
push 0x10102b84
mov ecx, edi
call fcn.0363c0c0
lea ecx, [esp + 0x208]
call fcn.0363bfe0
mov ecx, dword [esp + 0xe4]
test ecx, ecx
je 0x36ad59a
call fcn.03707920
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
cmp dword [esi + 0x28], 0
jne 0x36ad777
cmp dword [esi + 0x48], 0x10b
lea edx, [esi + 0x48]
jne 0x36ad651
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ad63c
mov ebx, dword [esi + 0x24]
push 0x1010b7ec
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x24c]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
push ebx
mov edi, eax
lea eax, [esp + 0x454]
push 0x100f9404
push eax
call dword [0x100f5304]
add esp, 0xc
lea eax, [esp + 0x450]
push 0x1010b820
push ecx
push eax
mov ecx, edi
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0x238]
call fcn.0363bfe0
mov ecx, dword [esp + 0x34]
push esi
call fcn.036adbd0
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
jmp 0x36ad432
movzx eax, byte [esi + 0x40]
mov ecx, dword [0x1011f340]
push eax
push dword [esi + 0x3c]
add ecx, 0xb1c
push dword [esi + 0x54]
push dword [esi + 0x50]
mov eax, dword [ecx]
push edx
push 0
push 0
push dword [esi + 0x44]
push dword [esi + 0x30]
call dword [eax + 0x24]
call eax
mov ecx, dword [0x1011f360]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
call dword [edx + 0xf8]
test eax, eax
je 0x36ad951
mov ebx, dword [esi + 0x24]
push 0x1010b6f0
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x204]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
push ebx
mov edi, eax
lea eax, [esp + 0x554]
push 0x100f9404
push eax
call dword [0x100f5304]
add esp, 0xc
lea eax, [esp + 0x550]
mov ecx, edi
push eax
call fcn.0363c0c0
push 0x10102b84
push ecx
push dword [esp + 0x20]
lea ecx, [esp + 0xfc]
mov edi, eax
call fcn.0363c230
push eax
push ecx
push 0x1010b854
mov ecx, edi
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c1f0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0x1f0]
call fcn.0363bfe0
mov ecx, dword [esp + 0xf4]
test ecx, ecx
je 0x36ad951
call fcn.03707920
mov eax, dword [esi]
push esi
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
call dword [eax + 0xc]
jmp 0x36ad432
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ad806
mov ebx, dword [esi + 0x24]
push 0x1010b6f0
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x210]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
push ebx
mov edi, eax
lea eax, [esp + 0x654]
push 0x100f9404
push eax
call dword [0x100f5304]
add esp, 0xc
lea eax, [esp + 0x650]
push 0x1010b890
push ecx
push eax
mov ecx, edi
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0x1fc]
call fcn.0363bfe0
movzx eax, byte [esi + 0x40]
mov ecx, dword [0x1011f340]
push eax
push dword [esi + 0x3c]
lea eax, [esi + 0x48]
add ecx, 0xb1c
push dword [esi + 0x54]
push dword [esi + 0x50]
push eax
mov eax, dword [ecx]
push 0
push 0
push dword [esi + 0x44]
push dword [esi + 0x30]
call dword [eax + 0x24]
call eax
mov ecx, dword [0x1011f360]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
call dword [edx + 0xf8]
test eax, eax
je 0x36ad951
mov ebx, dword [esi + 0x24]
push 0x1010b6f0
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x228]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
push ebx
mov edi, eax
lea eax, [esp + 0x854]
push 0x100f9404
push eax
call dword [0x100f5304]
add esp, 0xc
lea eax, [esp + 0x850]
mov ecx, edi
push eax
call fcn.0363c0c0
push dword [esp + 0x18]
lea ecx, [esp + 0x114]
mov edi, eax
call fcn.0363c230
push 0x1010b854
mov ecx, edi
mov ebx, eax
call fcn.0363c0c0
mov edx, dword [ebx]
mov edi, eax
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
call dword [edx]
push dword [esp + 0x50]
mov ecx, edi
call fcn.0363c0c0
mov ecx, dword [esp + 0x50]
mov edi, eax
test ecx, ecx
je 0x36ad908
call fcn.03707920
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
push 0x10102b84
mov ecx, edi
call fcn.0363c0c0
lea ecx, [esp + 0x214]
call fcn.0363bfe0
mov ecx, dword [esp + 0x114]
test ecx, ecx
je 0x36ad951
call fcn.03707920
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
jmp 0x36ad432
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ad432
push 0x1010b8cc
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x1e0]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
push edi
mov esi, eax
lea eax, [esp + 0xa54]
push 0x100f9404
push eax
call dword [0x100f5304]
add esp, 0xc
lea eax, [esp + 0xa50]
push 0x10102b84
push ecx
push eax
mov ecx, esi
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0x1cc]
call fcn.0363bfe0
jmp 0x36ad432
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x36ada37
push 0x1010b76c
push ecx
push 0x1010b670
push 0x100f7c84
push 2
lea ecx, [esp + 0x1ec]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0x1d8]
call fcn.0363bfe0
lea ecx, [esp + 0x2c]
call fcn.036ae9e0
test ebx, ebx
je 0x36ada4b
mov ecx, ebx
call fcn.03707920
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret