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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x3fc
mov eax, dword [0x87100004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp + 0x44]
mov dword [ebp - 0x190], eax
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp - 0x1d4], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebp - 0x1d8], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp - 0x194], eax
mov eax, dword [ebp + 0x74]
mov dword [ebp - 0x1d0], eax
mov eax, dword [ebp + 0x78]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x1f8], eax
xor eax, eax
mov word [ebp - 0x1f4], ax
lea edi, [ebp - 0x1f0]
stosd dword es:[edi], eax
xor ebx, ebx
push 0xdc
stosd dword es:[edi], eax
lea eax, [ebp - 0x3f8]
push ebx
push eax
mov dword [ebp - 0x19c], ebx
mov byte [ebp - 0x17d], bl
mov dword [ebp - 0x3fc], ebx
call fcn.837853bf
mov eax, dword [ebp - 0x194]
add esp, 0xc
cmp dword [ebp - 0x184], ebx
mov dword [ebp - 0x1b8], ebx
setne byte [ebp - 0x185]
mov dword [ebp - 0x1c0], ebx
mov dword [ebp - 0x1e0], ebx
mov dword [ebp - 0x1dc], ebx
mov dword [ebp - 0x1b4], ebx
mov dword [ebp - 0x1bc], ebx
mov dword [eax], ebx
cmp byte [ebp + 0x4c], bl
je 0x83789139
mov eax, dword [ebp - 0x184]
cmp eax, ebx
je 0x83789139
cmp dword [eax + 0x110], ebx
jne 0x83789139
mov eax, dword [ebp - 0x1d8]
push 1
push ebx
push 0xc0000022
push 0x870f6dac
push ebx
mov dword [eax], 0x1001
call fcn.8377aaa5
mov dword [ebp - 0x184], eax
jmp 0x83789e56
mov edi, dword [ebp - 0x18c]
test byte [edi + 0x10], 0x10
mov dword [ebp - 0x3fc], ebx
je 0x83789157
push 0x10
pop eax
lea ecx, [ebp - 0x3ec]
lock or dword [ecx], eax
push 0x100
lea eax, [ebp - 0x31c]
push ebx
push eax
call fcn.837853bf
push 0x158
lea eax, [ebp - 0x17c]
push ebx
push eax
call fcn.837853bf
mov ax, word [ebp + 0xc]
mov word [ebp - 0x1f4], ax
movzx eax, word [esi]
mov dword [ebp - 0x1f0], eax
lea eax, [ebp - 0x31c]
mov dword [ebp - 0x1ec], eax
mov eax, dword [edi + 0xe4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x204], ecx
movzx eax, word [eax + 6]
mov dword [ebp - 0x208], eax
movzx eax, word [esi + 2]
shl eax, 3
mov dword [ebp + eax - 0x31c], 0xc
lea ecx, [ebp - 0x208]
mov dword [ebp + eax - 0x318], ecx
mov eax, dword [edi + 0xe8]
lea ecx, [eax + 0x34]
mov dword [ebp - 0x1fc], ecx
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x200], eax
movzx eax, word [esi + 4]
shl eax, 3
mov dword [ebp + eax - 0x31c], 0x10
lea ecx, [ebp - 0x200]
mov dword [ebp + eax - 0x318], ecx
movzx eax, word [esi + 6]
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp + eax*8 - 0x31c], edx
mov dword [ebp + eax*8 - 0x318], ecx
movzx eax, word [esi + 0xe]
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp + eax*8 - 0x31c], edx
mov dl, byte [ebp + 0x18]
mov dword [ebp + eax*8 - 0x318], ecx
movzx eax, word [esi + 0xc]
add esp, 0x18
xor ecx, ecx
shl eax, 3
push 2
inc ecx
pop edi
mov dword [ebp + eax - 0x31c], ecx
mov byte [ebp + eax - 0x318], dl
cmp word [ebp + 0x14], di
jne 0x8378926a
cmp dword [ebp + 0x18], ecx
je 0x8378927f
cmp word [ebp + 0x14], 0x17
jne 0x83789310
cmp dword [ebp + 0x18], 0x3a
jne 0x83789310
movzx eax, word [esi + 0xa]
mov edx, dword [ebp - 0x198]
movzx cx, byte [edx + 4]
movzx dx, byte [edx + 5]
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov word [ebp + eax - 0x318], cx
movzx eax, word [esi + 0x10]
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov word [ebp + eax - 0x318], dx
movzx eax, word [esi + 0x44]
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov word [ebp + eax - 0x318], cx
mov ecx, dword [ebp - 0x198]
mov al, byte [ecx + 4]
cmp word [ebp + 0x14], di
jne 0x837892f4
cmp al, 8
je 0x837892fc
cmp al, bl
je 0x837892fc
cmp al, 0xd
je 0x837892fc
cmp al, 0xe
je 0x837892fc
cmp al, 0x11
jmp 0x837892fa
cmp al, 0x80
je 0x837892fc
cmp al, 0x81
jne 0x8378934c
mov eax, dword [ecx]
or dword [ebp - 0x17c], 0x8000000
mov dword [ebp - 0xc4], eax
jmp 0x8378934c
mov cx, word [ebp + 0x24]
movzx eax, word [esi + 0xa]
mov dh, cl
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov dl, ch
mov cx, word [ebp + 0x3c]
mov word [ebp + eax - 0x318], dx
movzx eax, word [esi + 0x10]
mov dh, cl
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov dl, ch
mov word [ebp + eax - 0x318], dx
movzx eax, word [esi + 8]
mov cl, byte [ebp + 0x28]
shl eax, 3
mov dword [ebp + eax - 0x31c], 1
mov byte [ebp + eax - 0x318], cl
movzx eax, word [esi + 0x18]
shl eax, 3
mov dword [ebp + eax - 0x31c], 4
lea ecx, [ebp + 0x2c]
mov dword [ebp + eax - 0x318], ecx
movzx ecx, word [esi + 0x1a]
mov eax, dword [ebp - 0x1a0]
mov eax, dword [eax + 8]
shl ecx, 3
push 3
pop edi
mov dword [ebp + ecx - 0x31c], edi
mov edx, dword [eax + 0x18]
mov edx, dword [edx + 0xc]
mov dword [ebp + ecx - 0x318], edx
movzx ecx, word [esi + 0x1c]
shl ecx, 3
mov dword [ebp + ecx - 0x31c], edi
mov edx, dword [eax + 0x18]
mov edx, dword [edx + 0x10]
mov dword [ebp + ecx - 0x318], edx
movzx ecx, word [esi + 0x16]
mov dl, byte [ebp + 0x58]
shl ecx, 3
mov dword [ebp + ecx - 0x31c], 1
push ebx
push dword [ebp - 0x1b0]
mov byte [ebp + ecx - 0x318], dl
movzx ecx, word [esi + 0x26]
push dword [ebp - 0x1a0]
shl ecx, 3
push dword [ebp + 0x14]
mov dword [ebp + ecx - 0x31c], edi
mov eax, dword [eax + 4]
push dword [ebp - 0x190]
mov dword [ebp + ecx - 0x318], eax
call fcn.8377a586
mov dword [ebp - 0x1ac], eax
cmp dword [ebp - 0x190], ebx
je 0x83789535
movzx eax, word [esi + 0x2a]
mov dword [ebp + eax*8 - 0x31c], ebx
movzx eax, word [esi + 0x2c]
mov dword [ebp + eax*8 - 0x31c], ebx
movzx eax, word [esi + 0x2e]
mov dword [ebp + eax*8 - 0x31c], ebx
movzx eax, word [esi + 0x30]
movzx ecx, word [esi + 0x34]
mov dword [ebp + eax*8 - 0x31c], ebx
movzx eax, word [esi + 0x28]
mov dword [ebp + eax*8 - 0x31c], ebx
mov eax, dword [ebp - 0x190]
lea edx, [eax + 8]
shl ecx, 3
mov dword [ebp + ecx - 0x31c], 4
mov dword [ebp + ecx - 0x318], edx
mov edx, dword [eax + 0x18]
movzx ecx, word [esi + 0x36]
shl ecx, 3
mov dword [ebp + ecx - 0x31c], edi
mov eax, dword [edx + 0xc]
mov dword [ebp + ecx - 0x318], eax
movzx eax, word [esi + 0x38]
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov ecx, dword [edx + 0x10]
mov dword [ebp + eax - 0x318], ecx
movzx eax, word [esi + 0x3a]
mov ecx, dword [ebp - 0x190]
mov edx, dword [ecx + 4]
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov dword [ebp + eax - 0x318], edx
movzx eax, word [esi + 0x32]
mov edx, dword [ebp + 0x48]
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov dword [ebp + eax - 0x318], edx
movzx eax, word [esi + 0x3c]
mov edx, dword [ebp - 0x1ac]
push ebx
push dword [ebp - 0x1b0]
shl eax, 3
push dword [ebp - 0x1a0]
mov dword [ebp + eax - 0x31c], edi
push dword [ebp + 0x14]
mov dword [ebp + eax - 0x318], edx
movzx eax, word [esi + 0x3e]
push ecx
mov dword [ebp + eax*8 - 0x31c], edi
call fcn.8377a586
movzx ecx, word [esi + 0x3e]
mov dword [ebp + ecx*8 - 0x318], eax
jmp 0x837895c3
movzx ecx, word [esi + 0x2a]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x2c]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x2e]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x30]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x28]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x34]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x36]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x38]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x3a]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x32]
mov dword [ebp + ecx*8 - 0x31c], ebx
movzx ecx, word [esi + 0x3c]
shl ecx, 3
mov dword [ebp + ecx - 0x31c], edi
mov dword [ebp + ecx - 0x318], eax
movzx eax, word [esi + 0x3e]
mov dword [ebp + eax*8 - 0x31c], ebx
movzx eax, word [esi + 0x40]
mov ecx, dword [ebp - 0x190]
mov ecx, dword [ecx + 0x18]
shl eax, 3
mov dword [ebp + eax - 0x31c], edi
mov dword [ebp + eax - 0x318], ebx
movzx eax, word [esi + 0x46]
shl eax, 3
mov dword [ebp + eax - 0x31c], 4
add ecx, 0x20
mov dword [ebp + eax - 0x318], ecx
lea eax, [ebp - 0x1b8]
push eax
push dword [ebp + 0x3c]
push dword [ebp - 0x1c4]
push dword [ebp + 0xc]
push dword [ebp - 0x18c]
call fcn.83762300
mov ecx, dword [ebp - 0x1b8]
cmp ecx, ebx
je 0x8378964b
movzx eax, word [esi + 0x42]
shl eax, 3
mov dword [ebp + eax - 0x31c], 0xc
mov edx, dword [ecx + 0x20]
mov dword [ebp + eax - 0x318], edx
movzx eax, byte [ecx + 2]
mov dword [ebp - 0x1c0], eax
movzx eax, word [esi + 0x20]
mov esi, dword [ebp - 0x18c]
shl eax, 3
lea edx, [esi + 0x58]
xor ecx, ecx
mov dword [ebp + eax - 0x31c], edi
test edx, edx
je 0x83789681
mov edx, dword [esi + 0x78]
test dl, 1
je 0x83789673
push 2
pop ecx
test edx, 0x800
je 0x83789681
or ecx, 0x10000
cmp byte [ebp + 0x4c], bl
je 0x83789689
or ecx, 1
test byte [esi + 0x10], 0x10
je 0x83789692
or ecx, 0x10
cmp dword [ebp - 0x1c0], ebx
je 0x837896a0
or ecx, 0x4000
cmp byte [ebp - 0x185], bl
je 0x837896ae
or ecx, 0x100000
mov dword [ebp + eax - 0x318], ecx
xor eax, eax
lea edi, [ebp - 0x21c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x3fc]
mov dword [ebp - 0x21c], eax
mov eax, esi
cmp dword [eax + 0x1b4], 1
mov byte [ebp - 0x218], bl
jne 0x837896e7
or dword [ebp - 0x178], 0x80000
or dword [ebp - 0x17c], 0x80
or dword [ebp - 0x17c], 0x20
mov ecx, dword [esi + 0xe4]
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], ebx
mov eax, dword [ecx + 0x10]
or dword [ebp - 0x17c], 0x400
or dword [ebp - 0x17c], 0x800
or dword [ebp - 0x17c], 0x4000
cdq
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp - 0x150], eax
mov eax, dword [esi + 0x194]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x118], eax
cmp byte [ebp - 0x185], bl
je 0x8378979a
mov eax, dword [ebp - 0x184]
or dword [ebp - 0x17c], 0x20000000
lea edx, [eax + 0x10]
mov eax, dword [eax + 0x110]
mov dword [ebp - 0xbc], edx
cmp eax, ebx
je 0x8378979a
or dword [ebp - 0x17c], 0x10000000
mov dword [ebp - 0xc0], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20c], eax
movzx eax, word [ecx + 6]
or dword [ebp - 0x17c], 8
or dword [ebp - 0x17c], 0x10
mov dword [ebp - 0x210], eax
lea eax, [ebp - 0x210]
mov dword [ebp - 0x14c], eax
mov eax, dword [esi + 0xe8]
mov eax, dword [eax + 0x1c]
cdq
mov dword [ebp - 0x144], eax
lea eax, [esi + 0x138]
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x140], edx
call fcn.8377aac4
call fcn.8377aae6
movzx eax, al
push eax
push esi
call fcn.8377a9e8
lea eax, [ebp - 0x1cc]
push eax
push dword [ebp + 0xc]
call fcn.837717c4
mov edi, dword [ebp - 0x1a8]
mov eax, dword [edi]
mov ecx, dword [edi + 0x24]
or dword [ebp - 0x17c], 0x8000
mov dword [ebp - 0x114], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x110], eax
mov eax, dword [edi + 0x20]
mov edx, eax
or edx, ecx
je 0x8378984d
or dword [ebp - 0x17c], 0x4000000
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], ecx
mov eax, dword [edi + 8]
cmp eax, ebx
je 0x83789864
or dword [ebp - 0x17c], 0x20000
mov dword [ebp - 0x10c], eax
mov eax, dword [edi + 0xc]
cmp eax, ebx
je 0x83789884
or dword [ebp - 0x17c], 0x10000
mov dword [ebp - 0x108], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x104], eax
mov eax, dword [edi + 0x14]
cmp eax, ebx
je 0x837898a4
or dword [ebp - 0x17c], 0x800000
mov dword [ebp - 0xfc], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x3bc]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x3bc], 1
mov byte [ebp - 0x3b8], bl
mov byte [ebp - 0x3b7], 1
mov dword [ebp - 0x3b4], ebx
mov dword [ebp - 0x3b0], ebx
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffc
and eax, 3
add edx, 4
push ebx
xor edx, eax
push ebx
lea eax, [ebp - 0x3dc]
push eax
mov dword [ecx], edx
call fcn.8377227d
lea eax, [ebp - 0x1e0]
push eax
lea eax, [ebp - 0x3fc]
push eax
push esi
call fcn.83772267
test eax, eax
jne 0x83789935
mov eax, dword [ebp - 0x1e0]
or dword [ebp - 0x17c], 2
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x1dc]
push esi
mov dword [ebp - 0x158], eax
call fcn.83772272
push dword [ebp - 0x1d8]
lea eax, [ebp - 0x17d]
push eax
push ebx
push dword [ebp - 0x1d4]
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.8377a798
mov dword [ebp - 0x184], eax
cmp byte [ebp - 0x17d], bl
jne 0x83789973
cmp eax, ebx
je 0x83789981
jmp 0x83789e5c
mov eax, 0x8000
lea ecx, [ebp - 0x3ec]
lock or dword [ecx], eax
cmp dword [ebp + 0x58], 4
je 0x83789cdc
cmp dword [ebp + 0x58], 3
je 0x83789cdc
mov eax, dword [ebp - 0x9c]
cmp dword [ebp - 0xa0], ebx
jne 0x837899a5
mov eax, ebx
cmp dword [ebp - 0xa8], ebx
je 0x837899b6
cmp dword [ebp - 0xa4], 1
je 0x83789a24
push dword [ebp - 0x1d0]
lea ecx, [ebp - 0x17c]
push dword [ebp - 0x194]
push ecx
push ebx
push 1
push ebx
push eax
lea eax, [ebp - 0x3fc]
push eax
push ebx
push dword [ebp - 0x1b0]
push 1
push dword [ebp - 0x1cc]
push dword [ebp + 0xc]
push dword [ebp - 0x198]
push dword [ebp + 0x3c]
push dword [ebp - 0x1c4]
push dword [ebp + 0x24]
push dword [ebp - 0x1a0]
push dword [ebp - 0x190]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push esi
call fcn.8376c9af
mov dword [ebp - 0x184], eax
cmp eax, ebx
je 0x83789ae2
jmp 0x83789e56
xor eax, eax
cmp word [ebp + 0x14], 2
mov dword [ebp - 0x1ac], ebx
mov byte [ebp - 0x14], bl
mov byte [ebp - 0x13], bl
mov byte [ebp - 0x12], bl
mov byte [ebp - 0x11], bl
mov byte [ebp - 0x10], bl
mov byte [ebp - 0xf], bl
mov byte [ebp - 0xe], bl
mov byte [ebp - 0xd], bl
mov byte [ebp - 0xc], bl
mov byte [ebp - 0xb], bl
mov byte [ebp - 0xa], bl
mov byte [ebp - 9], bl
mov byte [ebp - 8], bl
mov byte [ebp - 7], bl
mov byte [ebp - 6], bl
mov byte [ebp - 5], bl
jne 0x83789a6b
lea eax, [ebp - 0x1ac]
jmp 0x83789a75
cmp word [ebp + 0x14], 0x17
jne 0x83789a75
lea eax, [ebp - 0x14]
push dword [ebp - 0x1d0]
lea ecx, [ebp - 0x17c]
push dword [ebp - 0x194]
push ecx
push 1
push 1
push ebx
push ebx
lea ecx, [ebp - 0x3fc]
push ecx
push ebx
push dword [ebp - 0x1b0]
push 1
push dword [ebp - 0x1cc]
push dword [ebp + 0xc]
push dword [ebp - 0x198]
push dword [ebp + 0x3c]
push eax
push dword [ebp + 0x24]
push dword [ebp - 0x1a0]
push dword [ebp - 0x190]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push esi
call fcn.8376c9af
mov dword [ebp - 0x184], eax
cmp eax, ebx
jne 0x83789e56
push 1
push esi
call fcn.8376d0ad
push dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x194]
push dword [eax]
call fcn.83763cc4
mov dword [ebp - 0x184], eax
cmp eax, ebx
jne 0x83789e56
mov eax, dword [ebp - 0x194]
mov esi, dword [eax]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x1c8], esi
test eax, 0x4000
je 0x83789c9c
test eax, 0x8000
jne 0x83789cc4
mov eax, dword [ebp - 0x1a4]
mov dword [eax + 0xc], esi
mov eax, dword [eax + 0x24]
mov dword [esi + 0xb8], eax
lea eax, [esi + 0xac]
push eax
push dword [ebp + 0x3c]
push dword [ebp - 0x1c4]
push dword [ebp + 0x14]
push dword [ebp - 0x18c]
call fcn.8377ab88
test eax, eax
jne 0x83789b6c
push 0x10000
add esi, 0x10
push esi
call fcn.837648b8
lea eax, [ebp - 0x19c]
push eax
push dword [0x8710b128]
call fcn.8377f957
mov dword [ebp - 0x184], eax
cmp eax, ebx
jne 0x83789e0e
mov eax, dword [edi + 0x10]
mov esi, 0x55656c41
cmp eax, ebx
jbe 0x83789bb4
lea ecx, [ebp - 0x1b4]
push ecx
push esi
push eax
call fcn.83746376
mov dword [ebp - 0x184], eax
cmp eax, ebx
jne 0x83789e0e
mov edi, dword [edi + 0x18]
cmp edi, ebx
jbe 0x83789bd7
lea eax, [ebp - 0x1bc]
push eax
push esi
push edi
call fcn.83746376
mov dword [ebp - 0x184], eax
cmp eax, ebx
jne 0x83789e0e
mov eax, dword [ebp - 0x19c]
mov esi, dword [ebp - 0x1a4]
push 0x38
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x1d4]
mov dword [eax + 0xc4], ecx
mov ecx, dword [ebp - 0x1b4]
mov dword [eax + 0xc8], ecx
mov ecx, dword [ebp - 0x1a8]
mov edx, dword [ecx + 0x10]
mov dword [eax + 0xcc], edx
mov edx, dword [ebp - 0x1bc]
mov dword [eax + 0xd0], edx
mov ecx, dword [ecx + 0x18]
mov dword [eax + 0xd4], ecx
mov dword [ebp - 0x1b4], ebx
mov dword [ebp - 0x1bc], ebx
push dword [eax + 0xc4]
call fcn.83773e37
push dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x1c8]
push dword [ebp - 0x19c]
movzx ecx, word [eax + 0x18]
push 0x870cd66f
push ecx
push eax
call fcn.837b715c
mov dword [ebp - 0x184], eax
cmp eax, ebx
jne 0x83789e0e
mov ecx, dword [ebp - 0x194]
mov ecx, dword [ecx]
mov eax, 0x8000
add ecx, 0x10
lock or dword [ecx], eax
mov eax, dword [ebp - 0x1a4]
mov byte [eax + 0x29], 1
mov eax, dword [ebp - 0x1f8]
mov byte [ebp - 0x17d], 1
mov byte [eax], 1
jmp 0x83789cc4
cmp byte [ebp - 0x17d], bl
jne 0x83789cc4
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [eax + 0x1c]
xor edx, edx
inc edx
lock xadd dword [ecx], edx
mov eax, dword [eax + 0x24]
xor ecx, ecx
mov dword [esi + 0xb8], eax
inc ecx
lock xadd dword [eax], ecx
mov ecx, dword [ebp - 0x194]
mov ecx, dword [ecx]
mov eax, 0x100000
add ecx, 0x10
lock or dword [ecx], eax
jmp 0x83789e56
cmp dword [ebp - 0xb0], ebx
je 0x83789cfe
cmp dword [ebp - 0xb0], 3
jne 0x83789e5c
cmp dword [ebp - 0xac], 1
je 0x83789e5c
xor ecx, ecx
cmp word [ebp + 0x14], 2
mov dword [ebp - 0x1c0], ebx
mov byte [ebp - 0x24], bl
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x22], bl
mov byte [ebp - 0x21], bl
mov byte [ebp - 0x20], bl
mov byte [ebp - 0x1f], bl
mov byte [ebp - 0x1e], bl
mov byte [ebp - 0x1d], bl
mov byte [ebp - 0x1c], bl
mov byte [ebp - 0x1b], bl
mov byte [ebp - 0x1a], bl
mov byte [ebp - 0x19], bl
mov byte [ebp - 0x18], bl
mov byte [ebp - 0x17], bl
mov byte [ebp - 0x16], bl
mov byte [ebp - 0x15], bl
mov byte [ebp - 0x1a8], 2
jne 0x83789d4c
lea ecx, [ebp - 0x1c0]
jmp 0x83789d56
cmp word [ebp + 0x14], 0x17
jne 0x83789d56
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x94]
cmp dword [ebp - 0x98], ebx
jne 0x83789d66
mov edx, ebx
cmp dword [ebp - 0xb0], ebx
je 0x83789d7e
cmp dword [ebp - 0xac], 2
jne 0x83789d7e
mov byte [ebp - 0x1a8], 0xa
cmp ecx, ebx
je 0x83789e5c
push dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x198]
push dword [ebp - 0x194]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1e4], eax
lea eax, [ebp - 0x17c]
push eax
push ebx
push dword [ebp - 0x1a8]
lea eax, [ebp - 0x3fc]
push ebx
push edx
push eax
push ebx
push dword [ebp - 0x1b0]
lea eax, [ebp - 0x1e8]
push 1
push dword [ebp - 0x1cc]
mov dword [ebp - 0x1e8], edi
push dword [ebp + 0xc]
mov dword [ebp - 0x1e8], ebx
push eax
push ebx
push ecx
push dword [ebp + 0x24]
push dword [ebp - 0x1a0]
push dword [ebp - 0x190]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push esi
call fcn.8376c9af
mov dword [ebp - 0x184], eax
cmp eax, ebx
jne 0x83789e56
push 1
push esi
call fcn.8376d0ad
mov esi, dword [ebp - 0x19c]
cmp esi, ebx
je 0x83789e56
lea eax, [esi + 0xc4]
cmp dword [eax], ebx
je 0x83789e2a
push ebx
push dword [eax]
call fcn.83773afd
lea eax, [esi + 0xc8]
cmp dword [eax], ebx
je 0x83789e3a
push eax
call fcn.8375c882
lea eax, [esi + 0xd0]
cmp dword [eax], ebx
je 0x83789e4a
push eax
call fcn.8375c882
push esi
push dword [0x8710b128]
call fcn.8377feeb
mov esi, dword [ebp - 0x18c]
cmp dword [ebp - 0x1b4], ebx
je 0x83789e70
lea eax, [ebp - 0x1b4]
push eax
call fcn.8375c882
cmp dword [ebp - 0x1bc], ebx
je 0x83789e84
lea eax, [ebp - 0x1bc]
push eax
call fcn.8375c882
cmp dword [ebp - 0x1b8], ebx
je 0x83789e98
push dword [ebp - 0x1b8]
push esi
call fcn.837b699a
cmp dword [ebp - 0x354], ebx
je 0x83789eac
lea eax, [ebp - 0x3fc]
push eax
call fcn.8375ec7a
mov eax, dword [ebp - 0x3cc]
or eax, dword [ebp - 0x3c8]
je 0x83789ec6
lea eax, [ebp - 0x3dc]
push eax
call fcn.83772288
mov esi, 0x103
cmp byte [ebp - 0x17d], bl
jne 0x83789ed9
mov esi, dword [ebp - 0x184]
cmp esi, ebx
je 0x83789ee8
push 0x870f6dac
push esi
call fcn.8377aa64
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.83781dcc
leave
ret 0x74