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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x14d8
call fcn.037136ca
push esi
push edi
push dword [0x1011f460]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x254], 1
call dword [0x100f5268]
inc eax
push eax
push dword [0x1011f460]
call dword [0x100f5264]
push 1
call dword [0x100f5170]
mov edx, dword [ebp + 0x10]
mov esi, eax
movzx ecx, dx
mov dword [esp + 0x1c], esi
mov word [esp + 0x270], dx
and ecx, 0x800000ff
jns 0x362d2e7
dec ecx
or ecx, 0xffffff00
inc ecx
mov eax, edx
sub eax, ecx
add eax, 0x100
movzx ecx, ax
mov word [esp + 0x272], ax
cmp ecx, 0x200
ja 0x362d30c
lea eax, [esp + 0x278]
jmp 0x362d314
call fcn.03707780
mov edx, dword [ebp + 0x10]
movzx ecx, dx
push ecx
push dword [ebp + 0x14]
mov dword [esp + 0x27c], eax
push eax
call dword [0x1011f348]
mov eax, dword [esp + 0x270]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x274]
mov dword [esp + 0x18c], eax
lea eax, [esp + 0x188]
push 8
push eax
lea eax, [esp + 0x160]
push eax
call dword [0x1011f348]
push 0x100f8bc4
lea eax, [esp + 0xd4]
push eax
call dword [0x1011f448]
mov eax, dword [esp + 0x158]
mov edi, 0x3a
cmp ax, word [esp + 0xd0]
jb 0x362d6af
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x114], eax
lea eax, [esp + 0x110]
push 8
push eax
lea eax, [esp + 0x188]
push eax
call dword [0x1011f348]
mov ax, word [esp + 0xd0]
mov word [esp + 0x180], ax
lea eax, [esp + 0xd0]
push 1
push eax
lea eax, [esp + 0x188]
push eax
call dword [0x1011f444]
neg eax
sbb eax, eax
inc eax
je 0x362d6af
mov eax, dword [0x100f8bd8]
movq xmm0, qword [0x100f8bd0]
mov dword [esp + 0x1a4], eax
mov ax, word [0x100f8bdc]
mov word [esp + 0x1a8], ax
mov eax, dword [esp + 0x270]
and eax, 0xfffe
movq qword [esp + 0x19c], xmm0
cmp eax, 0xc
jb 0x362d6af
mov ecx, dword [esp + 0x274]
cmp di, word [ecx + 0xa]
jne 0x362d6af
mov edi, dword [esp + 0x14]
mov ax, word [ecx + 8]
mov word [esp + 0x1a4], ax
cmp dword [edi + 4], 0
je 0x362d6af
cmp dword [0x1011f45c], 0
je 0x362d6af
movzx ecx, word [ecx + 8]
mov eax, dword [0x1011f458]
movzx eax, word [eax + ecx*2]
sub eax, 0x41
mov dword [esp + 0x20], eax
cmp eax, 0x20
jae 0x362d6af
mov edi, dword [0x1011f340]
lea eax, [esp + 0x47c]
push 0
push 0x24
push eax
push 0x17
call dword [0x100f5260]
push eax
mov eax, dword [edi + 0x137c]
lea ecx, [edi + 0x137c]
mov eax, dword [eax + 0x24]
call eax
call eax
test eax, eax
jne 0x362d6af
mov eax, dword [esp + 0x20]
mov cl, byte [esp + eax + 0x480]
test cl, cl
je 0x362d4d2
cmp cl, 1
je 0x362d4d2
cmp cl, 4
jne 0x362d6af
mov edi, dword [esp + 0x14]
mov dword [esp + 0x8c], eax
add edi, 0x40
lea eax, [esp + 0x8c]
mov ecx, edi
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.036309b0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x362d525
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0x270]
mov ecx, dword [ebp + 0xc]
push eax
call fcn.036c02e0
jmp 0x362ee4c
mov ecx, dword [esp + 0x20]
mov eax, 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], ecx
push eax
lea ecx, [esp + 0x60]
mov dword [esp + 0x2c], eax
call fcn.0362f130
lea eax, [esp + 0x64]
mov ecx, edi
push eax
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0362fc00
mov eax, dword [esp + 0x38]
test eax, eax
je 0x362d57c
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov dword [esp + 0x38], 0
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0x1ac]
push eax
call dword [0x1011f45c]
mov dword [esp + 0x34], eax
mov ecx, edi
lea eax, [esp + 0x58]
push eax
call fcn.0362fdf0
mov eax, dword [esp + 0x34]
cmp eax, 0xea
jne 0x362d5b9
mov eax, dword [esp + 0x28]
add eax, 0x100
jmp 0x362d546
test eax, eax
jne 0x362d6a6
push 0x100f8be0
lea ecx, [esp + 0x1c0]
call fcn.03629310
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0x1bc]
add eax, 2
push eax
call fcn.0362ee90
push dword [esp + 0x1bc]
lea eax, [esp + 0xfc]
push eax
call dword [0x1011f448]
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
push edi
push dword [ebp + 8]
push dword [esp + 0x104]
push dword [esp + 0x104]
call fcn.0362d0a0
movzx eax, word [edi]
test ax, ax
je 0x362d643
shr ax, 1
mov edx, 0x5c
dec ax
movzx ecx, ax
mov eax, dword [edi + 4]
cmp dx, word [eax + ecx*2]
je 0x362d643
push 0x100f8728
mov ecx, edi
call fcn.036c0460
movzx edx, word [esp + 0x270]
shr dx, 1
cmp dx, 7
jbe 0x362d68c
mov eax, dword [esp + 0x274]
mov ecx, edi
add eax, 0xe
mov dword [esp + 0xa8], eax
lea eax, [edx - 7]
movzx eax, ax
add eax, eax
mov word [esp + 0xa4], ax
mov word [esp + 0xa6], ax
lea eax, [esp + 0xa4]
push eax
call fcn.036c0370
lea ecx, [esp + 0x1bc]
call fcn.036231a0
lea ecx, [esp + 0x5c]
call fcn.036294a0
jmp 0x362ee4c
lea ecx, [esp + 0x5c]
call fcn.036294a0
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x52]
push ecx
push eax
lea esi, [ecx + 0x24]
mov ecx, esi
mov dword [esp + 0x70], esi
call fcn.03621390
test al, al
je 0x362d6d0
inc dword [esi + 0x10]
mov al, 1
mov edi, dword [esp + 0x14]
mov byte [esp + 0x13], al
add edi, 0x18
mov byte [esp + 0x6c], al
mov ecx, edi
lea eax, [esp + 0x20]
mov dword [esp + 0x2c], edi
push eax
call fcn.03630e80
mov esi, dword [esp + 0x20]
cmp esi, dword [edi + 4]
jne 0x362d70e
xor edi, edi
mov dword [esp + 0x3c], edi
test esi, esi
je 0x362d73e
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov dword [esp + 0x20], edi
jmp 0x362d73e
mov edi, esi
mov dword [esp + 0x3c], edi
test esi, esi
je 0x362d72c
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov dword [esp + 0x20], 0
test edi, edi
je 0x362d73e
mov eax, dword [edi]
push edi
call dword [eax + 0xc]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], edi
test edi, edi
mov edi, dword [0x100f5100]
je 0x362dbee
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x44]
push eax
call fcn.0362fb60
mov esi, eax
mov cx, word [esi]
mov word [esp + 0xcc0], cx
movzx edx, word [esi]
mov ecx, edx
and ecx, 0x800000ff
jns 0x362d780
dec ecx
or ecx, 0xffffff00
inc ecx
sub edx, ecx
add edx, 0x100
movzx ecx, dx
mov word [esp + 0xcc2], dx
cmp ecx, 0x200
ja 0x362d7a4
lea eax, [esp + 0xcc8]
jmp 0x362d7a9
call fcn.03707780
mov dword [esp + 0xcc4], eax
movzx ecx, word [esi]
push ecx
push dword [esi + 4]
push eax
call dword [0x1011f348]
push 1
lea eax, [esp + 0x274]
push eax
lea eax, [esp + 0xcc8]
push eax
call dword [0x1011f444]
test eax, eax
je 0x362dde7
mov dx, word [esp + 0xcc0]
movzx eax, dx
mov word [esp + 0x4a0], dx
and eax, 0x800000ff
jns 0x362d7ff
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [esp + 0xcc0]
sub ecx, eax
add ecx, 0x100
mov word [esp + 0x4a2], cx
movzx ecx, cx
cmp ecx, 0x200
ja 0x362d82a
lea eax, [esp + 0x4a8]
jmp 0x362d837
call fcn.03707780
mov dx, word [esp + 0xcc0]
movzx ecx, dx
push ecx
push dword [esp + 0xcc8]
mov dword [esp + 0x4ac], eax
push eax
call dword [0x1011f348]
push 0x100f8728
lea eax, [esp + 0xc8]
push eax
call dword [0x1011f448]
mov eax, dword [esp + 0x4a0]
add eax, dword [esp + 0xc4]
movzx ecx, ax
mov dword [esp + 0x30], ecx
cmp cx, word [esp + 0x4a2]
jbe 0x362d938
movzx eax, cx
and eax, 0x800000ff
jns 0x362d897
dec eax
or eax, 0xffffff00
inc eax
sub ecx, eax
mov eax, dword [esp + 0x4a4]
add ecx, 0x100
mov dword [esp + 0x18], eax
mov word [esp + 0x4a2], cx
movzx edi, cx
lea ecx, [esp + 0x4a8]
cmp ecx, eax
je 0x362d8de
test eax, eax
je 0x362d8de
mov edx, edi
mov ecx, eax
call fcn.03707880
mov edi, dword [0x100f5100]
mov esi, eax
mov dword [esp + 0x4a4], esi
jmp 0x362d93f
cmp edi, 0x200
ja 0x362d8fc
mov edi, dword [0x100f5100]
lea esi, [esp + 0x4a8]
mov dword [esp + 0x4a4], esi
jmp 0x362d93f
mov ecx, edi
call fcn.03707780
mov esi, eax
lea eax, [esp + 0x4a8]
cmp esi, eax
je 0x362d929
movzx eax, word [esp + 0x4a0]
cmp edi, eax
cmovb eax, edi
push eax
push dword [esp + 0x1c]
push esi
call dword [0x1011f348]
mov edi, dword [0x100f5100]
mov dword [esp + 0x4a4], esi
jmp 0x362d93f
mov esi, dword [esp + 0x4a4]
movzx eax, word [esp + 0xc4]
push eax
movzx eax, word [esp + 0x4a4]
push dword [esp + 0xcc]
add eax, esi
push eax
call dword [0x1011f348]
mov eax, dword [esp + 0x30]
mov word [esp + 0x4a0], ax
lea eax, [esp + 0x270]
push 8
push eax
lea eax, [esp + 0x128]
push eax
call dword [0x1011f348]
mov eax, dword [esp + 0x120]
cmp ax, word [esp + 0x4a0]
jb 0x362d9f5
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x17c], eax
lea eax, [esp + 0x178]
push 8
push eax
lea eax, [esp + 0x138]
push eax
call dword [0x1011f348]
mov ax, word [esp + 0x4a0]
mov word [esp + 0x130], ax
lea eax, [esp + 0x4a0]
push 1
push eax
lea eax, [esp + 0x138]
push eax
call dword [0x1011f444]
neg eax
sbb eax, eax
inc eax
jne 0x362dd71
mov esi, dword [esp + 0x4a4]
lea eax, [esp + 0x4a8]
cmp eax, esi
je 0x362daf2
test esi, esi
je 0x362daf2
lea eax, [esp + 0x210]
mov dword [esp + 0x204], 0
mov dword [esp + 0x228], eax
lea eax, [esp + 0x4b]
push ecx
mov dword [esp + 0x210], 0
lea ecx, [esp + 0x214]
mov dword [esp + 0x204], 0x1011f690
mov dword [esp + 0x20c], 0x1011f68c
movdqa xmm0, xmmword [esp + 0x204]
mov dword [esp + 0x214], 0
push eax
mov dword [esp + 0x21c], 0xffffffff
movdqu xmmword [esp + 0x220], xmm0
call fcn.037039a0
test al, al
je 0x362da96
mov eax, dword [esp + 0x220]
inc dword [eax]
mov al, 1
push esi
push 1
push dword [0x1011f2ec]
mov byte [esp + 0x238], al
call edi
cmp byte [esp + 0x22c], 0
je 0x362daf2
mov esi, dword [esp + 0x228]
mov eax, dword [esi + 0x10]
dec dword [eax]
jne 0x362daf2
mov eax, dword [esi + 0x10]
push 0
mov dword [eax], 0
push dword [esi + 8]
call dword [0x100f528c]
cmp dword [esi + 0xc], 0
lea eax, [esi + 0xc]
jle 0x362daf2
push eax
call dword [0x100f5290]
mov eax, dword [esi + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
mov esi, dword [esp + 0xcc4]
lea eax, [esp + 0xcc8]
cmp eax, esi
je 0x362dbe3
test esi, esi
je 0x362dbe3
lea eax, [esp + 0x1e0]
mov dword [esp + 0x74], 0
mov dword [esp + 0x1f8], eax
lea eax, [esp + 0x4a]
push ecx
mov dword [esp + 0x80], 0
lea ecx, [esp + 0x1e4]
mov dword [esp + 0x74], 0x1011f690
mov dword [esp + 0x7c], 0x1011f68c
movdqa xmm0, xmmword [esp + 0x74]
mov dword [esp + 0x1e4], 0
push eax
mov dword [esp + 0x1ec], 0xffffffff
movdqu xmmword [esp + 0x1f0], xmm0
call fcn.037039a0
test al, al
je 0x362db87
mov eax, dword [esp + 0x1f0]
inc dword [eax]
mov al, 1
push esi
push 1
push dword [0x1011f2ec]
mov byte [esp + 0x208], al
call edi
cmp byte [esp + 0x1fc], 0
je 0x362dbe3
mov esi, dword [esp + 0x1f8]
mov eax, dword [esi + 0x10]
dec dword [eax]
jne 0x362dbe3
mov eax, dword [esi + 0x10]
push 0
mov dword [eax], 0
push dword [esi + 8]
call dword [0x100f528c]
cmp dword [esi + 0xc], 0
lea eax, [esi + 0xc]
jle 0x362dbe3
push eax
call dword [0x100f5290]
mov eax, dword [esi + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
cmp dword [esp + 0x44], 0
jne 0x362d750
cmp byte [esp + 0x13], 0
je 0x362dc32
mov esi, dword [esp + 0x68]
dec dword [esi + 0x10]
jne 0x362dc32
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
call dword [0x100f528c]
add esi, 0xc
cmp dword [esi], 0
jle 0x362dc32
push esi
call dword [0x100f5290]
mov eax, dword [esp + 0x68]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call dword [0x100f5288]
mov eax, dword [esp + 0x14]
mov edx, 0x5c
cmp dword [eax + 4], 0
je 0x362dcc3
push 0x100f8bf0
lea eax, [esp + 0x144]
push eax
call dword [0x1011f448]
push 8
lea eax, [esp + 0x274]
push eax
lea eax, [esp + 0x25c]
push eax
call dword [0x1011f348]
push ecx
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x25c]
call fcn.036bffb0
mov edx, 0x5c
test eax, eax
je 0x362dcc3
movzx eax, word [esp + 0x140]
mov ecx, dword [esp + 0x274]
shr eax, 1
lea esi, [ecx + eax*2]
movzx eax, word [esp + 0x270]
shr eax, 1
lea eax, [ecx + eax*2]
cmp esi, eax
je 0x362dcc3
cmp dx, word [esi]
je 0x362de6b
add esi, 2
cmp esi, eax
jne 0x362dcb3
mov ecx, dword [esp + 0x274]
xor edi, edi
mov dword [esp + 0x18], ecx
cmp dx, word [ecx]
je 0x362dce6
movzx eax, word [esp + 0x270]
movzx esi, di
add esi, esi
cmp esi, eax
jne 0x362dd58
xor eax, eax
movzx esi, di
mov dword [esp + 0x10d0], eax
lea edx, [esp + 0x10d0]
mov eax, dword [esp + 0x274]
lea ecx, [esp + 0x9c]
add esi, esi
mov dword [esp + 0x10d4], 0
mov dword [esp + 0xa0], eax
mov word [esp + 0x9c], si
mov word [esp + 0x9e], si
call fcn.036a5ad0
test eax, eax
je 0x362e07d
mov ecx, dword [esp + 0x10d4]
lea eax, [esp + 0x10d8]
cmp eax, ecx
je 0x362dd4f
call fcn.03707920
mov ecx, dword [esp + 0x18]
mov edx, 0x5c
movzx eax, word [esp + 0x270]
cmp esi, eax
je 0x362e47b
inc edi
add ecx, 2
jmp 0x362dccc
mov ecx, dword [ebp + 8]
lea eax, [esp + 0xcc0]
push eax
call fcn.036c02e0
mov dx, word [esp + 0x4a0]
mov eax, dword [esp + 0x274]
movzx ecx, dx
shr ecx, 1
shr dx, 1
lea ecx, [eax + ecx*2]
mov ax, word [esp + 0x270]
shr ax, 1
sub ax, dx
movzx eax, ax
add eax, eax
push ecx
mov ecx, dword [ebp + 0xc]
mov word [esp + 0x198], ax
mov word [esp + 0x19a], ax
push dword [esp + 0x198]
call fcn.036c0280
mov ecx, dword [esp + 0x4a4]
lea eax, [esp + 0x4a8]
cmp eax, ecx
je 0x362ddff
call fcn.03707920
jmp 0x362ddff
mov ecx, dword [ebp + 8]
lea eax, [esp + 0xcc0]
push eax
call fcn.036c02e0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [esp + 0xcc4]
lea eax, [esp + 0xcc8]
cmp eax, ecx
je 0x362de16
call fcn.03707920
cmp byte [esp + 0x13], 0
je 0x362ee48
mov esi, dword [esp + 0x68]
dec dword [esi + 0x10]
jne 0x362ee48
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
call dword [0x100f528c]
add esi, 0xc
cmp dword [esi], 0
jle 0x362ee48
push esi
call dword [0x100f5290]
mov eax, dword [esp + 0x68]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call dword [0x100f5288]
jmp 0x362ee48
add esi, 2
cmp esi, eax
je 0x362dcc3
mov edi, 0x3a
jmp 0x362de80
movzx ecx, word [esi]
cmp dx, cx
je 0x362dcc3
cmp di, cx
je 0x362de9d
add esi, 2
cmp esi, eax
jne 0x362de80
jmp 0x362dcc3
cmp esi, eax
je 0x362dcc3
cmp dx, word [esi]
je 0x362deb6
add esi, 2
cmp esi, eax
jne 0x362dea5
jmp 0x362dcc3
push 0x100f8be0
lea eax, [esp + 0xb8]
push eax
call dword [0x1011f448]
mov edx, dword [esp + 0xb4]
movzx ecx, dx
mov word [esp + 0x6a8], dx
and ecx, 0x800000ff
jns 0x362deeb
dec ecx
or ecx, 0xffffff00
inc ecx
mov eax, edx
sub eax, ecx
add eax, 0x100
movzx eax, ax
mov ecx, eax
mov word [esp + 0x6aa], ax
cmp ecx, 0x200
ja 0x362df12
lea eax, [esp + 0x6b0]
jmp 0x362df1e
call fcn.03707780
mov edx, dword [esp + 0xb4]
movzx ecx, dx
push ecx
push dword [esp + 0xbc]
mov dword [esp + 0x6b4], eax
push eax
call dword [0x1011f348]
push esi
lea eax, [esp + 0x94]
push eax
call dword [0x1011f448]
mov eax, dword [esp + 0x90]
add eax, dword [esp + 0x6a8]
movzx eax, ax
mov dword [esp + 0x58], eax
cmp ax, word [esp + 0x6aa]
jbe 0x362e00c
movzx ecx, ax
and ecx, 0x800000ff
jns 0x362df7c
dec ecx
or ecx, 0xffffff00
inc ecx
sub eax, ecx
lea ecx, [esp + 0x6b0]
add eax, 0x100
movzx eax, ax
mov word [esp + 0x6aa], ax
mov edi, eax
mov eax, dword [esp + 0x6ac]
mov dword [esp + 0x30], eax
cmp ecx, eax
je 0x362dfbe
test eax, eax
je 0x362dfbe
mov edx, edi
mov ecx, eax
call fcn.03707880
mov esi, eax
mov dword [esp + 0x6ac], esi
jmp 0x362e013
cmp edi, 0x200
ja 0x362dfd6
lea esi, [esp + 0x6b0]
mov dword [esp + 0x6ac], esi
jmp 0x362e013
mov ecx, edi
call fcn.03707780
mov esi, eax
lea eax, [esp + 0x6b0]
cmp esi, eax
je 0x362e003
movzx eax, word [esp + 0x6a8]
cmp edi, eax
cmovb eax, edi
push eax
push dword [esp + 0x34]
push esi
call dword [0x1011f348]
mov dword [esp + 0x6ac], esi
jmp 0x362e013
mov esi, dword [esp + 0x6ac]
movzx eax, word [esp + 0x90]
push eax
movzx eax, word [esp + 0x6ac]
push dword [esp + 0x98]
add eax, esi
push eax
call dword [0x1011f348]
push dword [ebp + 0xc]
mov eax, dword [esp + 0x5c]
push dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x6b4]
mov word [esp + 0x6b4], ax
push dword [esp + 0x6b4]
call fcn.0362d0a0
mov ecx, dword [esp + 0x6ac]
lea eax, [esp + 0x6b0]
cmp eax, ecx
je 0x362ee48
call fcn.03707920
jmp 0x362ee48
mov dx, word [esp + 0x10d0]
movzx eax, dx
mov word [esp + 0x8b0], dx
and eax, 0x800000ff
jns 0x362e09e
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [esp + 0x10d0]
sub ecx, eax
add ecx, 0x100
mov word [esp + 0x8b2], cx
movzx ecx, cx
cmp ecx, 0x200
ja 0x362e0c9
lea eax, [esp + 0x8b8]
jmp 0x362e0d6
call fcn.03707780
mov dx, word [esp + 0x10d0]
movzx ecx, dx
push ecx
push dword [esp + 0x10d8]
mov dword [esp + 0x8bc], eax
push eax
call dword [0x1011f348]
mov ax, word [esp + 0x270]
mov esi, dword [esp + 0x18]
shr ax, 1
sub ax, di
mov dword [esp + 0xb0], esi
movzx eax, ax
add eax, eax
mov dword [esp + 0x4c], eax
mov word [esp + 0xac], ax
mov word [esp + 0xae], ax
mov eax, dword [esp + 0x8b0]
add eax, dword [esp + 0xac]
movzx ecx, ax
mov dword [esp + 0x54], ecx
cmp cx, word [esp + 0x8b2]
jbe 0x362e1e9
movzx eax, cx
and eax, 0x800000ff
jns 0x362e155
dec eax
or eax, 0xffffff00
inc eax
sub ecx, eax
lea edx, [esp + 0x8b8]
add ecx, 0x100
movzx eax, cx
mov word [esp + 0x8b2], cx
mov ecx, dword [esp + 0x8b4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ecx
cmp edx, ecx
je 0x362e198
test ecx, ecx
je 0x362e198
mov edx, eax
call fcn.03707880
mov edi, eax
mov dword [esp + 0x8b4], edi
jmp 0x362e1f0
cmp eax, 0x200
ja 0x362e1af
lea edi, [esp + 0x8b8]
mov dword [esp + 0x8b4], edi
jmp 0x362e1f0
mov ecx, eax
call fcn.03707780
mov edi, eax
lea eax, [esp + 0x8b8]
cmp edi, eax
je 0x362e1e0
movzx eax, word [esp + 0x8b0]
cmp dword [esp + 0x30], eax
cmovb eax, dword [esp + 0x30]
push eax
push dword [esp + 0x1c]
push edi
call dword [0x1011f348]
mov dword [esp + 0x8b4], edi
jmp 0x362e1f0
mov edi, dword [esp + 0x8b4]
mov eax, dword [esp + 0x4c]
movzx eax, ax
push eax
movzx eax, word [esp + 0x8b4]
push esi
add eax, edi
push eax
call dword [0x1011f348]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8b4]
mov word [esp + 0x8b0], cx
mov eax, dword [esp + 0x8b0]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], edx
cmp word [esp + 0x272], cx
jae 0x362e2f2
movzx eax, cx
and eax, 0x800000ff
jns 0x362e24b
dec eax
or eax, 0xffffff00
inc eax
sub ecx, eax
mov eax, dword [esp + 0x274]
add ecx, 0x100
mov dword [esp + 0x54], eax
mov word [esp + 0x272], cx
movzx edi, cx
lea ecx, [esp + 0x278]
cmp ecx, eax
je 0x362e294
test eax, eax
je 0x362e294
mov edx, edi
mov ecx, eax
call fcn.03707880
mov edx, dword [esp + 0x30]
mov esi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x274], esi
jmp 0x362e2f9
cmp edi, 0x200
ja 0x362e2b4
mov eax, dword [esp + 0x4c]
lea esi, [esp + 0x278]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x274], esi
jmp 0x362e2f9
mov ecx, edi
call fcn.03707780
mov esi, eax
lea eax, [esp + 0x278]
cmp esi, eax
je 0x362e2e1
movzx eax, word [esp + 0x270]
cmp edi, eax
cmovb eax, edi
push eax
push dword [esp + 0x58]
push esi
call dword [0x1011f348]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x274], esi
jmp 0x362e2f9
mov esi, dword [esp + 0x274]
mov word [esp + 0x270], ax
movzx eax, ax
push eax
push edx
push esi
call dword [0x1011f348]
mov edi, dword [esp + 0x8b4]
lea eax, [esp + 0x8b8]
cmp eax, edi
je 0x362e436
test edi, edi
je 0x362e436
mov dword [esp + 0x74], 0
lea eax, [esp + 0xd8]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], 0x1011f690
mov dword [esp + 0x78], 0x1011f68c
movdqa xmm0, xmmword [esp + 0x70]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xffffffff
movdqu xmmword [esp + 0xe0], xmm0
mov dword [esp + 0xf0], eax
call dword [0x100f5284]
mov ecx, dword [esp + 0xe0]
mov esi, eax
cmp esi, dword [ecx]
je 0x362e3cb
mov ecx, dword [esp + 0xe0]
cmp dword [ecx], 0
jne 0x362e460
push 0
push esi
push dword [esp + 0xe8]
call dword [0x100f5280]
test eax, eax
sete al
test al, al
je 0x362e460
mov eax, dword [esp + 0xe8]
mov dword [eax], 0
mov eax, dword [esp + 0xe8]
inc dword [eax]
mov al, 1
push edi
push 1
push dword [0x1011f2ec]
mov byte [esp + 0x100], al
call dword [0x100f5100]
cmp byte [esp + 0xf4], 0
je 0x362e436
mov esi, dword [esp + 0xf0]
mov eax, dword [esi + 0x10]
dec dword [eax]
jne 0x362e436
mov eax, dword [esi + 0x10]
push 0
mov dword [eax], 0
push dword [esi + 8]
call dword [0x100f528c]
cmp dword [esi + 0xc], 0
lea eax, [esi + 0xc]
jle 0x362e436
push eax
call dword [0x100f5290]
mov eax, dword [esi + 0x14]
push 0
push 1
push eax
call dword [0x100f5288]
mov ecx, dword [esp + 0x10d4]
lea eax, [esp + 0x10d8]
mov edx, 0x5c
cmp eax, ecx
je 0x362dcc3
call fcn.03707920
mov edx, 0x5c
jmp 0x362dcc3
push ecx
push esi
lea ecx, [esp + 0xe0]
call fcn.03703a20
test al, al
jne 0x362e3cb
jmp 0x362e3d6
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x53]
push ecx
add esi, 0x24
push eax
mov ecx, esi
mov dword [esp + 0x110], esi
call fcn.03621390
test al, al
jne 0x362e4a0
mov byte [esp + 0x13], al
jmp 0x362e4a8
inc dword [esi + 0x10]
mov byte [esp + 0x13], 1
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0xcc]
push eax
call fcn.03630e80
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0xcc]
cmp esi, dword [eax + 4]
jne 0x362e4d1
xor edi, edi
test esi, esi
je 0x362e4ed
jmp 0x362e4e3
mov edi, esi
test esi, esi
je 0x362e4ed
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
test edi, edi
je 0x362e7fc
lea esp, [esp]
lea ecx, [esp + 0x34]
push ecx
mov ecx, eax
call fcn.0362fb60
mov esi, eax
mov cx, word [esi]
mov word [esp + 0xab8], cx
movzx edx, word [esi]
mov ecx, edx
and ecx, 0x800000ff
jns 0x362e52e
dec ecx
or ecx, 0xffffff00
inc ecx
sub edx, ecx
add edx, 0x100
movzx ecx, dx
mov word [esp + 0xaba], dx
cmp ecx, 0x200
ja 0x362e552
lea eax, [esp + 0xac0]
jmp 0x362e557
call fcn.03707780
mov dword [esp + 0xabc], eax
movzx ecx, word [esi]
push ecx
push dword [esi + 4]
push eax
call dword [0x1011f348]
push 1
lea eax, [esp + 0x274]
push eax
lea eax, [esp + 0xac0]
push eax
call dword [0x1011f444]
test eax, eax
je 0x362e76e
mov dx, word [esp + 0xab8]
movzx eax, dx
mov word [esp + 0xec8], dx
and eax, 0x800000ff
jns 0x362e5ad
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [esp + 0xab8]
sub ecx, eax
add ecx, 0x100
mov word [esp + 0xeca], cx
movzx ecx, cx
cmp ecx, 0x200
ja 0x362e5d8
lea eax, [esp + 0xed0]
jmp 0x362e5e5
call fcn.03707780
mov dx, word [esp + 0xab8]
movzx ecx, dx
push ecx
push dword [esp + 0xac0]
mov dword [esp + 0xed4], eax
push eax
call dword [0x1011f348]
push 0x100f8728
lea ecx, [esp + 0xecc]
call fcn.036c0460
mov eax, dword [esp + 0x270]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x274]
mov dword [esp + 0x16c], eax
lea eax, [esp + 0x168]
push 8
push eax
lea eax, [esp + 0x158]
push eax
call dword [0x1011f348]
mov eax, dword [esp + 0x150]
cmp ax, word [esp + 0xec8]
jb 0x362e6b0
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x174], eax
lea eax, [esp + 0x170]
push 8
push eax
lea eax, [esp + 0x168]
push eax
call dword [0x1011f348]
mov ax, word [esp + 0xec8]
mov word [esp + 0x160], ax
lea eax, [esp + 0xec8]
push 1
push eax
lea eax, [esp + 0x168]
push eax
call dword [0x1011f444]
neg eax
sbb eax, eax
inc eax
jne 0x362e6f2
mov ecx, dword [esp + 0xecc]
lea eax, [esp + 0xed0]
cmp eax, ecx
je 0x362e6c7
call fcn.03707920
mov ecx, dword [esp + 0xabc]
lea eax, [esp + 0xac0]
cmp eax, ecx
je 0x362e6de
call fcn.03707920
cmp dword [esp + 0x34], 0
je 0x362e7fc
mov eax, dword [esp + 0x2c]
jmp 0x362e500
push dword [esp + 0xabc]
mov ecx, dword [ebp + 8]
push dword [esp + 0xabc]
call fcn.036c0280
mov dx, word [esp + 0xec8]
mov eax, dword [esp + 0x274]
movzx ecx, dx
shr ecx, 1
shr dx, 1
lea ecx, [eax + ecx*2]
mov ax, word [esp + 0x270]
shr ax, 1
sub ax, dx
movzx eax, ax
add eax, eax
push ecx
mov ecx, dword [ebp + 0xc]
mov word [esp + 0x104], ax
mov word [esp + 0x106], ax
push dword [esp + 0x104]
call fcn.036c0280
mov ecx, dword [esp + 0xecc]
lea eax, [esp + 0xed0]
cmp eax, ecx
je 0x362e78c
call fcn.03707920
jmp 0x362e78c
push dword [esp + 0xabc]
mov ecx, dword [ebp + 8]
push dword [esp + 0xabc]
call fcn.036c0280
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [esp + 0xabc]
lea eax, [esp + 0xac0]
cmp eax, ecx
je 0x362e7a3
call fcn.03707920
cmp byte [esp + 0x13], 0
je 0x362ee48
mov esi, dword [esp + 0x14]
dec dword [esi + 0x34]
jne 0x362ee48
push 0
lea eax, [esi + 0x2c]
mov dword [esi + 0x34], 0
push eax
call dword [0x100f528c]
cmp dword [esi + 0x30], 0
lea eax, [esi + 0x30]
jle 0x362ee48
push eax
call dword [0x100f5290]
mov eax, dword [esp + 0x108]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call dword [0x100f5288]
jmp 0x362ee48
cmp byte [esp + 0x13], 0
mov edi, dword [esp + 0x14]
je 0x362e844
dec dword [edi + 0x34]
jne 0x362e844
push 0
lea eax, [edi + 0x2c]
mov dword [edi + 0x34], 0
push eax
call dword [0x100f528c]
cmp dword [edi + 0x30], 0
lea eax, [edi + 0x30]
jle 0x362e844
push eax
call dword [0x100f5290]
mov eax, dword [esp + 0x108]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call dword [0x100f5288]
cmp dword [edi + 4], 0
lea eax, [esp + 0x270]
mov dword [esp + 0x1c8], 0x18
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d4], 0x40
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0
je 0x362ead3
mov ax, word [esp + 0x270]
shr ax, 1
movzx esi, ax
mov eax, dword [esp + 0x274]
movzx ecx, si
movzx edx, si
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
lea edi, [eax + ecx*2]
xor eax, eax
mov dword [esp + 0x24], edi
mov ecx, 0x5c
mov dword [esp + 0x28], eax
cmp cx, word [edi]
je 0x362e8d6
cmp dx, si
jne 0x362eaa0
mov esi, dword [0x1011f340]
lea eax, [edx + edx]
mov word [esp + 0x270], ax
lea eax, [esp + 0x248]
push 8
push eax
mov dword [esp + 0x48], 0
call dword [0x1011f44c]
push 0x21
push 3
lea eax, [esp + 0x250]
push eax
lea eax, [esp + 0x1d4]
push eax
push 0x100000
lea eax, [esp + 0x54]
push eax
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
mov eax, dword [eax + 0x24]
call eax
call eax
test eax, eax
jne 0x362ea48
mov edi, 0x400
lea ecx, [ecx]
xor esi, esi
test edi, edi
je 0x362e94f
mov ecx, edi
call fcn.03707780
mov esi, eax
mov ecx, dword [0x1011f340]
lea eax, [esp + 0x25c]
push eax
add ecx, 0x107c
push edi
push esi
push 1
mov eax, dword [ecx]
push dword [esp + 0x50]
mov eax, dword [eax + 0x24]
call eax
call eax
cmp eax, 0xc0000004
je 0x362e989
cmp eax, 0x80000005
je 0x362e989
cmp eax, 0xc0000023
jne 0x362e99c
add edi, 0x100
test esi, esi
je 0x362e940
mov ecx, esi
call fcn.03707920
jmp 0x362e940
test eax, eax
jne 0x362ea39
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x12d8]
sub eax, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
push eax
push edi
call fcn.036c01a0
push dword [esi + 4]
lea ecx, [esp + 0x274]
push dword [esi]
call fcn.036c0280
mov eax, dword [esp + 0x12d8]
lea ecx, [esp + 0x270]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x12dc]
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x118]
push eax
call fcn.036c0370
mov ax, word [esp + 0x270]
mov ecx, dword [esp + 0x12dc]
shr ax, 1
movzx eax, ax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x12e0]
mov dword [esp + 0x28], 1
cmp eax, ecx
je 0x362ea30
call fcn.03707920
mov ecx, esi
call fcn.03707920
jmp 0x362ea48
test esi, esi
je 0x362ea44
mov ecx, esi
call fcn.03707920
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x362ea8f
cmp eax, 0xffffffff
je 0x362ea8f
mov ecx, dword [0x1011f340]
push eax
test ecx, ecx
je 0x362ea7a
mov eax, dword [ecx + 0x72c]
add ecx, 0x72c
mov eax, dword [eax + 0x24]
call eax
call eax
neg eax
sbb eax, eax
inc eax
jmp 0x362ea80
call dword [0x100f5250]
mov ecx, dword [esp + 0x40]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x18]
mov ecx, 0x5c
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x274], edi
je 0x362eac4
add edx, 0xffff
sub edi, 2
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], edi
test eax, eax
je 0x362e8c8
jmp 0x362ead3
test eax, eax
jne 0x362ead3
lea eax, [esi + esi]
mov word [esp + 0x270], ax
mov ax, word [esp + 0x270]
xor edi, edi
mov ecx, dword [esp + 0x274]
mov esi, 0x5c
shr ax, 1
movzx edx, ax
xor eax, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x44], ecx
cmp si, word [ecx]
je 0x362eb0f
cmp di, dx
jne 0x362ec2c
mov word [esp + 0x270], ax
mov dword [esp + 0x3c], 0
cmp si, word [ecx]
jne 0x362eb37
add eax, 2
mov dword [esp + 0x3c], 1
mov word [esp + 0x270], ax
mov esi, dword [0x1011f340]
lea eax, [esp + 0x240]
push 8
push eax
mov dword [esp + 0x2c], 0
call dword [0x1011f44c]
push 0x21
push 3
lea eax, [esp + 0x248]
push eax
lea eax, [esp + 0x1d4]
push eax
push 0x100001
lea eax, [esp + 0x38]
push eax
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
mov eax, dword [eax + 0x24]
call eax
call eax
test eax, eax
jne 0x362ec09
mov ecx, 0x400
call fcn.03707780
mov edi, dword [0x1011f340]
mov esi, eax
push 8
lea eax, [esp + 0x234]
mov dword [esp + 0xc0], esi
push eax
mov dword [esp + 0xc8], 0x400
call dword [0x1011f44c]
push 1
push 0
push 0
push 3
push 0x400
push esi
lea eax, [esp + 0x248]
push eax
mov eax, dword [edi + 0x9fc]
lea ecx, [edi + 0x9fc]
push 0
push 0
push 0
push dword [esp + 0x4c]
mov eax, dword [eax + 0x24]
call eax
call eax
test eax, eax
je 0x362ec38
lea ecx, [esp + 0xbc]
call fcn.036294a0
mov edi, dword [esp + 0x20]
lea ecx, [esp + 0x24]
call fcn.0362f180
mov edx, dword [esp + 0x38]
cmp di, dx
je 0x362ecd1
mov ecx, dword [esp + 0x44]
mov esi, 0x5c
mov eax, dword [esp + 0x34]
inc edi
add eax, 2
add ecx, 2
jmp 0x362eaf5
mov esi, dword [ebp + 8]
lea eax, [esp + 0x270]
push eax
mov ecx, esi
call fcn.036c02e0
cmp dword [esp + 0x3c], 0
je 0x362ec59
mov eax, 0xfffe
add word [esi], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
cmp cx, ax
jne 0x362ec89
push 0x100f7c80
lea eax, [esp + 0x12c]
push eax
call dword [0x1011f448]
push dword [esp + 0x12c]
push dword [esp + 0x12c]
jmp 0x362ecaf
sub ecx, eax
dec ecx
push ecx
movzx ecx, ax
mov eax, dword [esp + 0x278]
lea eax, [eax + ecx*2]
add eax, 2
lea ecx, [esp + 0x264]
push eax
call fcn.036bff20
push dword [eax + 4]
push dword [eax]
mov ecx, dword [ebp + 0xc]
call fcn.036c0280
lea ecx, [esp + 0xbc]
call fcn.036294a0
lea ecx, [esp + 0x24]
call fcn.0362f180
jmp 0x362ee14
lea eax, [edx + edx]
mov word [esp + 0x270], ax
lea eax, [esp + 0x270]
push 8
push eax
lea eax, [esp + 0x240]
push eax
call dword [0x1011f348]
push ecx
push 0x100f8bc4
lea ecx, [esp + 0x240]
call fcn.036bff40
test eax, eax
je 0x362ee30
mov eax, dword [0x100f8bd8]
movq xmm0, qword [0x100f8bd0]
mov dword [esp + 0x1b4], eax
mov ax, word [0x100f8bdc]
mov word [esp + 0x1b8], ax
mov eax, dword [esp + 0x270]
and eax, 0xfffe
movq qword [esp + 0x1ac], xmm0
cmp eax, 0xc
jb 0x362ee30
mov eax, dword [esp + 0x274]
mov ecx, 0x3a
cmp cx, word [eax + 0xa]
jne 0x362ee30
mov ax, word [eax + 8]
mov word [esp + 0x1b4], ax
lea eax, [esp + 0x1ac]
push eax
lea eax, [esp + 0x13c]
push eax
call dword [0x1011f448]
push dword [esp + 0x13c]
mov esi, dword [ebp + 8]
mov ecx, esi
push dword [esp + 0x13c]
call fcn.036c0280
mov cx, word [esp + 0x270]
mov edi, 6
cmp cx, 0xc
jne 0x362edd4
push 0x100f7c80
lea eax, [esp + 0x14c]
push eax
call dword [0x1011f448]
push dword [esp + 0x14c]
push dword [esp + 0x14c]
jmp 0x362ee0c
mov edx, dword [esp + 0x274]
mov eax, 0x5c
add edx, 0xc
cmp ax, word [edx]
jne 0x362edf0
add edx, 2
mov edi, 7
shr cx, 1
sub cx, di
movzx eax, cx
lea ecx, [esp + 0x268]
push eax
push edx
call fcn.036bff20
push dword [eax + 4]
push dword [eax]
mov ecx, dword [ebp + 0xc]
call fcn.036c0280
sub esp, 0x208
mov ecx, esp
push esi
call fcn.036c0140
mov ecx, dword [esp + 0x234]
call fcn.0362f0f0
jmp 0x362ee48
mov eax, dword [ebp + 8]
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0x270]
mov ecx, dword [ebp + 0xc]
push eax
call fcn.036c02e0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x274]
lea eax, [esp + 0x278]
cmp eax, ecx
je 0x362ee63
call fcn.03707920
push esi
call dword [0x100f5170]
push dword [0x1011f460]
call dword [0x100f5268]
dec eax
push eax
push dword [0x1011f460]
call dword [0x100f5264]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10