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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xf64
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], 0
push ebx
mov ebx, ecx
mov dword [esp + 0xc], ebx
push esi
push edi
test eax, eax
je 0x369657b
push eax
call dword [0x100f525c]
lea ecx, [ebp + 8]
xor esi, esi
push ecx
lea eax, [ebx + 0x1b8]
mov dword [esp + 0x40], esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0xb8], eax
push ecx
mov ecx, eax
call fcn.0362ae90
mov edi, dword [esp + 0x48]
test edi, edi
je 0x36965c4
mov esi, dword [edi + 0xc]
mov dword [esp + 0x3c], esi
test esi, esi
je 0x36965b7
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [edi]
push edi
call dword [eax + 0xc]
mov eax, 1
jmp 0x36965c6
xor eax, eax
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x7c], ecx
test ecx, ecx
je 0x36974b5
lea eax, [ebp + 8]
mov dword [esp + 0x48], 0
push eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [ebx + 0x140]
call fcn.0362ae90
mov eax, dword [esp + 0x18]
test eax, eax
je 0x3696df0
mov edi, dword [eax + 0xc]
mov dword [esp + 0x48], edi
test edi, edi
je 0x3696616
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
cmp eax, 2
je 0x3696645
mov eax, dword [ebp + 0x34]
push edi
mov dword [eax], 0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0xc000000d
mov eax, dword [edi]
call dword [eax + 8]
jmp 0x36975b0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
test eax, 0x92000001
jne 0x3696670
mov eax, dword [ebp + 0x34]
push edi
mov dword [eax], 0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0xc0000022
mov eax, dword [edi]
call dword [eax + 8]
jmp 0x36975b0
mov eax, dword [edi]
lea ecx, [esp + 0x10]
push ecx
push 0x100f7620
push edi
mov dword [esp + 0x1c], 0
call dword [eax]
test eax, eax
je 0x36966a2
mov eax, dword [ebp + 0x34]
mov dword [eax], 0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0xc0000229
jmp 0x36967af
lea ecx, [esp + 0x1c]
call fcn.03676970
push eax
lea ecx, [esp + 0x40]
call fcn.03629f30
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x36966c3
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov ecx, dword [ebp + 0x24]
call fcn.036a6c90
mov esi, dword [esp + 0x3c]
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x36966e3
push dword [ebx + 4]
mov ecx, esi
call fcn.03676610
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x340]
push edx
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x340]
mov dword [esp + 0xc0], eax
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x118], 0
push eax
push dword [ecx + 0x138]
mov dword [esp + 0xc4], 0x18
mov dword [esp + 0xd0], 0x40
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
call fcn.03698900
test eax, eax
jne 0x36967c8
mov eax, dword [ebp + 0x34]
lea ecx, [esp + 0x110]
mov dword [eax], 0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0xc0000229
call fcn.03686a60
mov ecx, dword [esp + 0x344]
lea eax, [esp + 0x348]
cmp eax, ecx
je 0x36967af
call fcn.03707920
mov eax, dword [esp + 0x10]
test eax, eax
je 0x36967bd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x36975b0
lea ecx, [esp + 0x54]
mov dword [esp + 0x60], 0
call fcn.0362bf20
mov eax, dword [esp + 0x338]
xor ecx, ecx
cmp eax, dword [esp + 0x32c]
mov eax, dword [ebp + 0x2c]
setge cl
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x369682b
mov edi, dword [esp + 0x320]
mov edi, dword [edi + 8]
test edi, edi
je 0x369680e
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [ebp + 0x2c]
lea ecx, [esp + 0x54]
push ecx
push esi
push eax
push dword [ebp + 0x24]
push edi
call fcn.03694f50
test edi, edi
je 0x3696828
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x2c]
lea ecx, [esp + 0x54]
push ecx
push esi
push eax
push dword [ebp + 0x24]
push dword [esp + 0x20]
call fcn.03695910
cmp dword [esp + 0x1c], 0
je 0x3696876
mov dword [esp + 0x20], 1
mov edi, dword [esp + 0x320]
mov edi, dword [edi + 8]
test edi, edi
je 0x3696861
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x24]
test eax, eax
je 0x369687a
mov dword [esp + 0x14], 1
jmp 0x3696882
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x14], 0
test byte [esp + 0x20], 1
je 0x3696893
test edi, edi
je 0x3696893
mov eax, dword [edi]
push edi
call dword [eax + 8]
cmp dword [esp + 0x14], 0
jne 0x3696be8
mov edi, dword [ebp + 0x2c]
test edi, edi
je 0x36968cb
push 0x101094b4
lea eax, [esp + 0x44]
push eax
call dword [0x1011f448]
push 1
lea eax, [esp + 0x44]
push eax
push edi
call dword [0x1011f444]
test eax, eax
jne 0x3696be8
test ebx, ebx
je 0x3696be8
push 0x100f872c
lea eax, [esp + 0x50]
push eax
call dword [0x1011f448]
push 0x100f8730
lea eax, [esp + 0xf4]
push eax
call dword [0x1011f448]
mov edi, dword [esp + 0x320]
lea eax, [esp + 0x4c]
mov dword [esp + 0x40], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x44], eax
mov edi, dword [edi + 8]
test edi, edi
je 0x369691d
mov eax, dword [edi]
push edi
call dword [eax + 4]
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [ebx + 0x30], 0xffffffff
mov ecx, dword [ebx + 4]
mov eax, dword [esp + eax*4 + 0x40]
mov dword [esp + 0x1c], ecx
je 0x369693d
movzx eax, word [eax]
add ecx, eax
mov dword [esp + 0x1c], ecx
push ecx
lea ecx, [esp + 0x38]
call fcn.03629470
push dword [esp + 0x1c]
push dword [esp + 0x38]
call dword [0x1011f44c]
push 1
lea eax, [esp + 0x50]
push eax
mov eax, dword [esp + 0x1c]
push dword [esp + eax*4 + 0x48]
call dword [0x1011f444]
test eax, eax
mov eax, dword [edi]
jne 0x3696c2b
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call dword [eax + 0x4c]
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0xd0]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0xd4]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0x108]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x10c]
push ecx
mov ecx, ebx
call dword [eax + 0x24]
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0xe0]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0xe4]
push ecx
mov ecx, ebx
call dword [eax + 0x2c]
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0xe8]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0x98]
push ecx
lea ecx, [esp + 0xec]
push ecx
mov ecx, ebx
call dword [eax + 0x28]
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0xd8]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0xdc]
push ecx
mov ecx, ebx
call dword [eax + 0x30]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x3696a7a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x20]
cmp ecx, 0xffffffff
je 0x3696a9d
push 4
lea eax, [esp + 0xac]
push eax
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
call dword [0x1011f348]
mov ecx, dword [ebx + 0x18]
cmp ecx, 0xffffffff
je 0x3696ab4
mov eax, dword [esp + 0x34]
push 8
add eax, ecx
push eax
call dword [0x1011f44c]
mov ecx, dword [ebx + 0x1c]
cmp ecx, 0xffffffff
je 0x3696acb
mov eax, dword [esp + 0x34]
push 8
add eax, ecx
push eax
call dword [0x1011f44c]
mov ecx, dword [ebx + 0x2c]
cmp ecx, 0xffffffff
je 0x3696af6
mov edx, dword [esp + 0x14]
push 4
mov eax, dword [esp + edx*4 + 0x44]
movzx eax, word [eax]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
call dword [0x1011f348]
mov edx, dword [ebx + 0x30]
cmp edx, 0xffffffff
je 0x3696b1a
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x40]
movzx eax, word [ecx]
push eax
push dword [ecx + 4]
mov eax, dword [esp + 0x3c]
add eax, edx
push eax
call dword [0x1011f348]
mov ecx, dword [ebx + 0x34]
cmp ecx, 0xffffffff
je 0x3696b3b
push 1
lea eax, [esp + 0x33]
mov byte [esp + 0x33], 0
push eax
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
call dword [0x1011f348]
mov ecx, dword [ebx + 8]
cmp ecx, 0xffffffff
je 0x3696b5a
push 8
lea eax, [esp + 0x8c]
push eax
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
call dword [0x1011f348]
mov ecx, dword [ebx + 0x10]
cmp ecx, 0xffffffff
je 0x3696b79
push 8
lea eax, [esp + 0x9c]
push eax
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
call dword [0x1011f348]
mov ecx, dword [ebx + 0xc]
cmp ecx, 0xffffffff
je 0x3696b98
push 8
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
call dword [0x1011f348]
mov ecx, dword [ebx + 0x14]
cmp ecx, 0xffffffff
je 0x3696bb7
push 8
lea eax, [esp + 0xa4]
push eax
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
call dword [0x1011f348]
lea eax, [esp + 0x34]
mov ecx, esi
push eax
call fcn.03676680
lea ecx, [esp + 0x34]
call fcn.036294a0
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 2
jb 0x3696923
test edi, edi
je 0x3696be8
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [esp + 0x54]
call fcn.03629f60
lea ecx, [esp + 0x110]
call fcn.03686a60
mov ecx, dword [esp + 0x344]
lea eax, [esp + 0x348]
cmp eax, ecx
je 0x3696c14
call fcn.03707920
mov eax, dword [esp + 0x10]
test eax, eax
je 0x3697478
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x3697478
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call dword [eax + 0x38]
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x3696c8a
mov dword [esp + 0xa8], 0x10
call fcn.0366ecd0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
jmp 0x3696d9f
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [esp + 0x20]
test eax, eax
mov eax, dword [ecx]
je 0x3696dbe
lea edx, [esp + 0x30]
push edx
call dword [eax + 0x4c]
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0xf8]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0xfc]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x100]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x104]
push ecx
mov ecx, ebx
call dword [eax + 0x24]
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x6c]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x70]
push ecx
mov ecx, ebx
call dword [eax + 0x2c]
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0xb8]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0x98]
push ecx
lea ecx, [esp + 0xbc]
push ecx
mov ecx, ebx
call dword [eax + 0x28]
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x80]
push 0x100f7c80
push eax
call dword [0x1011f448]
mov eax, dword [ebx]
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0x84]
push ecx
mov ecx, ebx
call dword [eax + 0x30]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x3696d9b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x30], 0
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x3696a7e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x20], 0
jmp 0x3696a7e
lea edx, [esp + 0xb60]
push edx
call dword [eax + 0x34]
lea edx, [esp + 0x88]
mov ecx, eax
call fcn.036a5f10
mov ecx, dword [esp + 0xb64]
lea eax, [esp + 0xb68]
cmp eax, ecx
je 0x3696d9f
call fcn.03707920
jmp 0x3696d9f
xor eax, eax
mov dword [esp + 0x344], 0
lea ecx, [esp + 0x340]
mov dword [esp + 0x340], eax
mov eax, dword [ebx]
push ecx
push dword [ebp + 8]
mov ecx, ebx
call dword [eax + 0x14]
test eax, eax
je 0x3696e31
mov eax, dword [ebp + 0x34]
mov dword [eax], 0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0xc0000229
jmp 0x36973fd
xor eax, eax
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], eax
mov ecx, ebx
mov dword [esp + 0x318], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x340]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x58]
mov dword [esp + 0x58], 0x18
push eax
push dword [ebx + 0x138]
mov dword [esp + 0x6c], 0x40
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
call fcn.03698900
test eax, eax
jne 0x3696eb7
mov eax, dword [ebp + 0x34]
mov dword [eax], 0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0xc0000229
jmp 0x36973da
lea ecx, [esp + 0x6c]
mov dword [esp + 0x78], 0
call fcn.0362bf20
lea ecx, [esp + 0x24]
call fcn.03676970
push eax
lea ecx, [esp + 0x40]
call fcn.03629f30
mov eax, dword [esp + 0x24]
test eax, eax
je 0x3696ee9
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
xor eax, eax
mov dword [esp + 0x95c], 0
mov dword [esp + 0x958], eax
lea ecx, [ebx + 0xfc]
lea eax, [esp + 0x958]
push eax
lea eax, [ebp + 8]
push eax
call fcn.036297e0
mov ecx, dword [esp + 0x320]
mov dword [esp + 0x10], eax
mov edi, dword [ecx + 8]
test edi, edi
je 0x3696f33
mov ecx, dword [edi]
push edi
call dword [ecx + 4]
mov ecx, dword [esp + 0x320]
mov esi, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x338]
cmp eax, dword [esp + 0x32c]
jl 0x3696fdd
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
test eax, eax
je 0x3696f66
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
call fcn.0364c320
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x3696f82
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x3696fdd
mov ecx, dword [ebp + 0x24]
call fcn.036a6c90
test eax, eax
je 0x3696fa0
push dword [eax + 4]
mov ecx, esi
call fcn.03676610
mov eax, dword [esp + 0x320]
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x3696fbc
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x6c]
push ecx
mov ecx, dword [ebp + 0x2c]
push esi
push ecx
push dword [ebp + 0x24]
push eax
call fcn.03694f50
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x3696fdd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [esp + 0x10], 0
je 0x36970a0
push 1
lea eax, [esp + 0x70]
mov ecx, ebx
push eax
push esi
push dword [ebp + 0x2c]
push dword [ebp + 0x24]
push dword [ebp + 8]
call fcn.03695e70
mov ebx, dword [ebx + 0x128]
lea eax, [esp + 0x80]
push 8
push eax
mov dword [esp + 0x18], 0
call dword [0x1011f44c]
push 0x21
push 3
lea ecx, [esp + 0x88]
mov dword [esp + 0x5c], 0x18
push ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x64], 0
push ecx
lea eax, [esp + 0x968]
mov dword [esp + 0x70], 0x40
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [ebx]
push 0x100001
push ecx
mov ecx, ebx
call dword [eax + 0x80]
mov ebx, dword [esp + 0x14]
test eax, eax
jne 0x3697097
mov ecx, dword [ebp + 0x2c]
push eax
lea eax, [esp + 0x70]
push eax
push esi
push ecx
push dword [ebp + 0x24]
mov ecx, ebx
push dword [esp + 0x24]
call fcn.03695e70
lea ecx, [esp + 0x10]
call fcn.0362f180
push edi
mov ecx, ebx
call fcn.03684930
test al, al
je 0x3697374
mov ecx, edi
call fcn.036a67a0
cmp eax, 3
je 0x3697374
mov eax, dword [edi]
lea ecx, [esp + 0xd68]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
movzx eax, word [esp + 0x32c]
mov ecx, dword [esp + 0x324]
add eax, eax
mov word [esp + 0x4c], ax
mov word [esp + 0x4e], ax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x750]
push eax
call fcn.036c0140
xor eax, eax
mov dword [esp + 0x54c], 0
mov dword [esp + 0x548], eax
lea eax, [esp + 0xd68]
push eax
push ecx
lea ecx, [esp + 0x758]
call fcn.036c0600
test eax, eax
je 0x36971bb
mov edx, dword [esp + 0xd68]
mov ecx, edx
mov eax, dword [esp + 0x750]
and ecx, 0xfffe
and eax, 0xfffe
cmp eax, ecx
jbe 0x36971bb
mov eax, dword [esp + 0x750]
movzx eax, ax
movzx ecx, dx
sub eax, ecx
shr ecx, 1
sub eax, 2
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [esp + 0x758]
lea eax, [eax + ecx*2]
add eax, 2
lea ecx, [esp + 0xb64]
push eax
call fcn.036c01a0
lea eax, [esp + 0x548]
mov ecx, ebx
push eax
lea eax, [esp + 0xb64]
push eax
call fcn.036843e0
mov ecx, dword [esp + 0xb64]
lea eax, [esp + 0xb68]
cmp eax, ecx
je 0x36971cf
call fcn.03707920
jmp 0x36971cf
lea eax, [esp + 0x750]
push eax
lea ecx, [esp + 0x54c]
call fcn.036c02e0
push 0x100f8728
lea ecx, [esp + 0x54c]
call fcn.036c0460
mov ecx, dword [0x1011f360]
mov eax, dword [ecx]
call dword [eax + 0xf8]
test eax, eax
je 0x3697277
push 0x10102b84
push ecx
lea eax, [esp + 0x550]
push eax
push ecx
push 0x101094e0
push ecx
lea eax, [esp + 0x768]
push eax
push ecx
push 0x10108fa0
push ecx
push 0x101094b8
push 0x100f7c84
push 2
lea ecx, [esp + 0xec]
call fcn.0363b9e0
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c140
add esp, 4
mov ecx, eax
call fcn.0363c0c0
add esp, 4
mov ecx, eax
call fcn.0363c140
add esp, 4
mov ecx, eax
call fcn.0363c0c0
lea ecx, [esp + 0xb8]
call fcn.0363bfe0
mov ebx, dword [ebx + 0x128]
lea eax, [esp + 0x80]
push 8
push eax
mov dword [esp + 0x18], 0
call dword [0x1011f44c]
push 0x21
push 3
lea ecx, [esp + 0x88]
mov dword [esp + 0x5c], 0x18
push ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x64], 0
push ecx
lea eax, [esp + 0x558]
mov dword [esp + 0x70], 0x40
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [ebx]
push 0x100001
push ecx
mov ecx, ebx
call dword [eax + 0x80]
mov ebx, dword [esp + 0x14]
test eax, eax
jne 0x3697326
push 1
lea eax, [esp + 0x70]
mov ecx, ebx
push eax
push esi
push dword [ebp + 0x2c]
push dword [ebp + 0x24]
push dword [ebp + 8]
call fcn.03695e70
push 0
lea eax, [esp + 0x70]
mov ecx, ebx
push eax
push esi
push dword [ebp + 0x2c]
push dword [ebp + 0x24]
push dword [esp + 0x24]
call fcn.03695e70
lea ecx, [esp + 0x10]
call fcn.0362f180
mov ecx, dword [esp + 0x54c]
lea eax, [esp + 0x550]
cmp eax, ecx
je 0x3697346
call fcn.03707920
mov ecx, dword [esp + 0x754]
lea eax, [esp + 0x758]
cmp eax, ecx
je 0x369735d
call fcn.03707920
mov ecx, dword [esp + 0xd6c]
lea eax, [esp + 0xd70]
cmp eax, ecx
je 0x3697374
call fcn.03707920
push 0
lea eax, [esp + 0x70]
mov ecx, ebx
push eax
push esi
push dword [ebp + 0x2c]
push dword [ebp + 0x24]
push dword [ebp + 8]
call fcn.03695e70
test eax, eax
je 0x369741d
mov ecx, dword [ebp + 0x34]
mov dword [ecx], 0
mov ecx, dword [ebp + 0x38]
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x36973b0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test edi, edi
je 0x36973ba
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [esp + 0x95c]
lea eax, [esp + 0x960]
cmp eax, ecx
je 0x36973d1
call fcn.03707920
lea ecx, [esp + 0x6c]
call fcn.03629f60
lea ecx, [esp + 0x318]
call fcn.036a0670
mov ecx, dword [esp + 0x114]
lea eax, [esp + 0x118]
cmp eax, ecx
je 0x36973fd
call fcn.03707920
mov ecx, dword [esp + 0x344]
lea eax, [esp + 0x348]
cmp eax, ecx
je 0x36975b0
call fcn.03707920
jmp 0x36975b0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x369742b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test edi, edi
je 0x3697435
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [esp + 0x95c]
lea eax, [esp + 0x960]
cmp eax, ecx
je 0x369744c
call fcn.03707920
lea ecx, [esp + 0x6c]
call fcn.03629f60
lea ecx, [esp + 0x110]
call fcn.03686a60
mov ecx, dword [esp + 0x344]
lea eax, [esp + 0x348]
cmp eax, ecx
je 0x3697478
call fcn.03707920
mov ecx, esi
call fcn.03676730
mov ecx, dword [esp + 0xb4]
lea eax, [esp + 0x3c]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.03629c90
mov eax, dword [esp + 0x24]
test eax, eax
je 0x36974a7
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov eax, dword [esp + 0x48]
test eax, eax
je 0x36974b5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 0x34]
mov ecx, esi
mov dword [eax], 0
call fcn.03676810
test eax, eax
je 0x36974d7
mov eax, dword [ebp + 0x38]
mov dword [eax], 0xc000000f
jmp 0x3697585
cmp byte [ebp + 0x30], 0
je 0x36974e4
mov ecx, esi
call fcn.03676730
mov ecx, esi
call fcn.03676880
test eax, eax
je 0x3697508
cmp dword [esp + 0x7c], 0
mov eax, 0xc000000f
mov ecx, 0x80000006
cmovne ecx, eax
mov eax, dword [ebp + 0x38]
mov dword [eax], ecx
jmp 0x3697585
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0
push eax
mov ecx, esi
mov dword [esp + 0x48], 0
call fcn.036768f0
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
cmp dword [ebp + 0x20], ebx
jae 0x3697550
mov ecx, esi
call fcn.036756c0
cmp dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x38]
sbb ecx, ecx
and ecx, 0x3fffffff
add ecx, 0x80000005
mov dword [eax], ecx
jmp 0x369757a
mov eax, dword [ebp + 0x18]
push ebx
push edi
push dword [ebp + 0x1c]
mov dword [eax], 0
call dword [0x1011f348]
mov eax, dword [ebp + 0x18]
mov ecx, esi
mov dword [eax + 4], ebx
call fcn.036767a0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0
test edi, edi
je 0x3697585
mov ecx, edi
call fcn.03707920
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x3697593
push eax
call dword [0x100f5258]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x36975b0
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push eax
call dword [0x100f5254]
push eax
call dword [0x1011f43c]
test esi, esi
je 0x36975ba
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34