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

Disassembly:
mov eax, 0x100ce09e
call fcn.100bd27c
sub esp, 0x3e8
push ebx
push ebp
push esi
xor ebx, ebx
mov dword [esp + 0x1c], edx
push edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4c], ebx
mov ecx, dword [esp + 0x420]
lea edx, [esp + 0x4c]
push edx
push 0x100d62dc
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x40c], ebx
call dword [eax]
mov eax, dword [esp + 0x414]
xorps xmm0, xmm0
mov ecx, ebx
movlpd qword [esp + 0x64], xmm0
mov esi, dword [esp + 0x68]
xor edx, edx
mov ebp, dword [esp + 0x64]
inc edx
movlpd qword [esp + 0x34], xmm0
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], esi
cmp dword [eax + 4], ecx
jbe 0x1008449f
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x1c], edx
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 0
je 0x100843d2
add ebx, dword [eax + 0x18]
mov esi, dword [esp + 0x10]
adc edi, dword [eax + 0x1c]
add esi, dword [eax + 0x18]
mov dword [esp + 0x10], esi
adc edx, dword [eax + 0x1c]
xor eax, eax
mov esi, dword [esp + 0x18]
inc eax
add ebp, eax
mov dword [esp + 0x1c], edx
push 0
pop eax
adc esi, eax
mov dword [esp + 0x18], esi
jmp 0x1008446a
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x410]
mov eax, dword [eax]
mov esi, dword [eax + ecx*4]
lea ecx, [esp + 0xc8]
push esi
call fcn.1007bf3b
mov eax, dword [esi + 0x68]
mov dword [esp + 0x130], eax
mov ecx, dword [esp + 0x40c]
xor eax, eax
inc eax
mov byte [esp + 0x400], al
lea eax, [esp + 0xc8]
push eax
call fcn.100817c7
test eax, eax
jne 0x10084489
mov ecx, dword [esp + 0xc8]
inc eax
shr ecx, 3
and ecx, eax
xor eax, eax
shl ecx, 4
add ecx, dword [esp + 0x130]
push eax
pop edx
adc eax, edx
mov byte [esp + 0x400], dl
add ecx, dword [esp + 0xd8]
adc eax, dword [esp + 0xdc]
add ebx, ecx
lea ecx, [esp + 0xc8]
adc edi, eax
call fcn.1007c2ac
mov ecx, dword [esp + 0x3c]
xor eax, eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add ebx, 0x4c
adc edi, eax
mov eax, dword [esp + 0x414]
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [eax + 4]
jb 0x10084399
xor edx, edx
inc edx
jmp 0x100844af
lea ecx, [esp + 0xc8]
call fcn.1007c2ac
mov edi, 0x80004001
jmp 0x10085266
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x41c]
test eax, eax
je 0x100844c4
add ebx, dword [eax + 4]
push 0
pop eax
adc edi, eax
jmp 0x100844c6
xor eax, eax
mov ecx, dword [esp + 0x420]
add ebx, edx
adc edi, eax
push edi
mov eax, dword [ecx]
push ebx
push ecx
call dword [eax + 0xc]
mov dword [esp + 0x9c], edi
lea ecx, [esp + 0x388]
mov edi, dword [esp + 0x418]
push edi
mov dword [esp + 0x9c], ebx
call fcn.1007b208
xorps xmm0, xmm0
mov byte [esp + 0x400], 2
push edi
lea ecx, [esp + 0x13c]
movlpd qword [esp + 0x38], xmm0
call fcn.1007b2b7
push 0x40
xor edx, edx
mov byte [esp + 0x404], 3
pop ebx
inc edx
mov dword [esp + 0x30], ebx
cmp dword [edi + 0x10], ebx
ja 0x1008453c
mov ebx, dword [edi + 0x10]
cmp ebx, edx
cmovb ebx, edx
mov dword [esp + 0x30], ebx
cmp ebx, edx
seta cl
xor eax, eax
mov byte [esp + 0x26], cl
cmp esi, eax
ja 0x10084557
jb 0x10084551
cmp ebp, edx
ja 0x10084557
mov cl, al
mov byte [esp + 0x26], cl
mov eax, dword [edi + 0x18]
mov al, byte [eax]
mov byte [esp + 0x27], al
test cl, cl
jne 0x100845a3
push 0xd
lea ecx, [esp + 0x13c]
call fcn.10008542
test eax, eax
jns 0x10084683
cmp byte [esp + 0x14c], 0
jne 0x1008458f
cmp byte [esp + 0x27], 0xc
jne 0x10084683
push ebx
push 0xd
lea ecx, [esp + 0x140]
call fcn.10008495
jmp 0x10084683
test al, al
jne 0x100845b6
cmp byte [edi + 0x24], al
jne 0x10084664
mov ebx, edx
mov dword [esp + 0x30], ebx
cmp al, 0xc
jne 0x10084641
lea eax, [esp + 0x17]
push eax
lea ecx, [esp + 0x13c]
call fcn.10083b78
cmp byte [esp + 0x17], 0
mov esi, eax
jne 0x1008462d
push dword [esp + 0x18]
push ebp
push dword [esp + 0x24]
push dword [esp + 0x1c]
call fcn.100bd7a0
lea ecx, [esp + 0x138]
mov edi, eax
mov esi, edx
call fcn.1004acee
xor edx, edx
push edx
push eax
push esi
push edi
call fcn.100bd7a0
xor ecx, ecx
inc ecx
push 0
add eax, ecx
pop ecx
adc edx, ecx
push 0x20
pop esi
cmp edx, ecx
ja 0x1008461e
jb 0x1008461c
cmp eax, esi
jae 0x1008461e
mov esi, eax
push esi
push 0xd
lea ecx, [esp + 0x140]
call fcn.10008495
mov eax, ebx
xor edx, edx
div esi
mov esi, dword [esp + 0x18]
mov ebx, eax
mov al, byte [esp + 0x27]
mov dword [esp + 0x30], ebx
cmp al, 0xe
jne 0x10084664
lea eax, [esp + 0x17]
push eax
lea ecx, [esp + 0x13c]
call fcn.10083bd4
mov ecx, eax
xor edx, edx
mov eax, ebx
div ecx
mov ebx, eax
mov dword [esp + 0x30], ebx
xor ecx, ecx
cmp ecx, esi
jb 0x10084676
ja 0x10084670
cmp ebx, ebp
jbe 0x10084676
mov ebx, ebp
mov dword [esp + 0x30], ebx
xor eax, eax
inc eax
cmp eax, ebx
sbb al, al
and al, byte [esp + 0x26]
jne 0x100846cf
push dword [esp + 0x4c]
mov ecx, dword [esp + 0x424]
lea eax, [esp + 0x9c]
mov edx, dword [esp + 0x24]
push eax
push ecx
push dword [esp + 0x428]
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x148]
push eax
push dword [esp + 0x428]
push dword [esp + 0x428]
push dword [esp + 0x428]
call fcn.10085294
mov edi, eax
jmp 0x10085245
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
push 0x10
mov byte [esp + 0x404], 4
call fcn.10003645
mov esi, eax
xor eax, eax
mov dword [esp + 0x20], esi
pop ecx
test esi, esi
je 0x1008470e
mov dword [esi + 4], eax
mov dword [esi], 0x100d82d8
mov dword [esi + 0xc], eax
jmp 0x10084714
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x64], esi
test esi, esi
je 0x10084722
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [esp + 0x420]
xor eax, eax
inc eax
mov byte [esp + 0x400], 5
push eax
push ecx
mov ecx, esi
call fcn.10083ab5
lea ecx, [esp + 0x278]
call fcn.10083337
push dword [esi + 0xc]
lea ecx, [esp + 0x27c]
mov byte [esp + 0x404], 6
push ebx
call fcn.100093c7
xor eax, eax
mov dword [esp + 0xa4], 0x10000
lea ecx, [esp + 0xac]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
call fcn.100b6c70
xor ecx, ecx
mov dword [esp + 0xc4], ecx
lea eax, [esp + 0xa0]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ecx
push ecx
mov eax, ebx
mov byte [esp + 0x404], 0xb
shl eax, 9
lea ecx, [esp + 0xa4]
push eax
call fcn.100080a5
mov edi, eax
test edi, edi
jne 0x100851c9
mov edi, dword [esp + 0x414]
mov esi, eax
cmp dword [edi + 4], eax
jbe 0x10084872
xor ebx, ebx
xor eax, eax
mov dword [esp + 0xc8], ebx
xorps xmm0, xmm0
mov dword [esp + 0xcc], ebx
inc eax
mov dword [esp + 0xd0], ebx
movlpd qword [esp + 0xd8], xmm0
mov byte [esp + 0xe0], al
mov word [esp + 0x100], bx
lea eax, [esp + 0xc8]
mov byte [esp + 0x400], 0xc
push eax
lea ecx, [esp + 0x84]
call fcn.100838f9
push ebx
mov byte [esp + 0x404], 0xb
call fcn.1000366d
inc esi
pop ecx
cmp esi, dword [edi + 4]
jb 0x1008480a
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x100848b5
mov esi, ebx
lea eax, [esp + 0x138]
push eax
lea ecx, [esp + 0x2c4]
call fcn.1008349f
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x404], 0xd
call fcn.10083944
lea ecx, [esp + 0x2c0]
mov byte [esp + 0x400], 0xb
call fcn.1008376d
dec esi
jne 0x10084878
xor eax, eax
mov ebp, eax
test ebx, ebx
je 0x10084986
mov eax, dword [esp + 0x6c]
mov esi, dword [eax + ebp*4]
mov ecx, esi
mov eax, dword [esp + 0x28]
mov dword [esi], eax
call fcn.10083b18
mov edi, eax
test edi, edi
jne 0x100851c9
push 0x50
call fcn.10003645
pop ecx
test eax, eax
je 0x100848fc
lea ecx, [esp + 0xa0]
push ecx
mov ecx, eax
call fcn.1008337c
jmp 0x100848fe
xor eax, eax
mov ecx, eax
mov dword [esi + 0x1c], eax
call fcn.10083aef
mov edi, eax
test edi, edi
jne 0x100851c9
push dword [esi + 0x1c]
lea ecx, [esi + 0x20]
call fcn.100093a0
xor eax, eax
inc eax
push 0x10
mov byte [esi + 0xb8], al
call fcn.10003645
pop ecx
test eax, eax
je 0x1008493f
xor edx, edx
mov dword [eax + 4], edx
mov dword [eax], 0x100d82b8
jmp 0x10084941
xor eax, eax
push eax
lea ecx, [esi + 0x18]
mov dword [esi + 0x14], eax
call fcn.100093a0
mov eax, dword [esi + 0x14]
lea ecx, [esp + 0x278]
push esi
mov edx, 0x10083a00
mov dword [eax + 8], ecx
lea ecx, [esi + 4]
mov dword [eax + 0xc], ebp
xor eax, eax
mov dword [esi + 0xc0], eax
call fcn.100b6e80
mov edi, eax
test edi, edi
jne 0x100851c9
inc ebp
cmp ebp, ebx
jb 0x100848c1
mov edx, dword [esp + 0x414]
mov ecx, eax
mov edi, eax
mov dword [esp + 0x2c], ecx
or esi, 0xffffffff
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], esi
mov eax, dword [edx + 4]
test eax, eax
je 0x10085198
mov ebp, dword [esp + 0x44]
cmp ebp, ebx
jae 0x10084c79
cmp ecx, eax
jae 0x10084c79
mov eax, dword [edx]
mov ebp, dword [eax + ecx*4]
inc ecx
mov dword [esp + 0x2c], ecx
cmp byte [ebp], 0
je 0x10085100
lea ecx, [esp + 0xc8]
call fcn.1007f282
lea ecx, [esp + 0x2c0]
mov byte [esp + 0x400], 0xe
call fcn.1007f282
xor eax, eax
mov byte [esp + 0x340], al
mov byte [esp + 0x400], 0xf
cmp byte [ebp + 1], al
je 0x10084a37
cmp byte [ebp + 2], al
je 0x10084ab7
lea ecx, [esp + 0x2c0]
call fcn.1007c2ac
lea ecx, [esp + 0xc8]
mov byte [esp + 0x400], 0xb
call fcn.1007c2ac
jmp 0x100850fc
mov eax, dword [esp + 0x410]
mov ecx, dword [ebp + 8]
mov eax, dword [eax]
mov esi, dword [eax + ecx*4]
lea ecx, [esp + 0xc8]
push esi
call fcn.1008380b
mov eax, dword [esi + 0x68]
mov ecx, dword [esp + 0x40c]
mov dword [esp + 0x130], eax
lea eax, [esp + 0xc8]
push eax
call fcn.100817c7
test eax, eax
jne 0x10085146
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0x2c4]
call fcn.1008380b
lea ecx, [esp + 0x2c0]
call fcn.1008288f
test al, al
je 0x10084ab5
lea ecx, [esp + 0x2c0]
call fcn.1007c2ac
lea ecx, [esp + 0xc8]
jmp 0x100850eb
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 8]
add esi, 0x3c
push esi
mov dword [esp + 0x54], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esp + 0x420]
lea edx, [esp + 0x28]
push edx
push dword [ebp + 0xc]
mov byte [esp + 0x408], 0x11
mov eax, dword [ecx]
push ecx
call dword [eax + 0x1c]
mov edi, eax
xor eax, eax
inc eax
cmp edi, eax
jne 0x10084b9d
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
add eax, 0x1e
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
push 0
pop edi
adc ecx, edi
add edx, eax
mov eax, dword [esp + 0x1c]
adc ebp, ecx
mov dword [esp + 0x34], edx
push ebp
push edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], ebp
call fcn.100840df
mov ecx, dword [esp + 0x420]
push edi
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov edi, eax
test edi, edi
jne 0x10085127
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x2c]
push esi
mov eax, dword [eax + ecx*4 - 4]
xor ecx, ecx
inc ecx
mov byte [eax + 0x39], cl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x400], 0xf
test eax, eax
je 0x10084b74
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0x2c0]
call fcn.1007c2ac
lea ecx, [esp + 0xc8]
mov byte [esp + 0x400], 0xb
call fcn.1007c2ac
mov edi, dword [esp + 0x10]
jmp 0x100850f8
test edi, edi
jne 0x10085127
mov edx, dword [esp + 0x28]
test edx, edx
je 0x10085122
mov edi, dword [esp + 0x420]
lea eax, [esp + 0x98]
push eax
push edi
mov ecx, ebp
call fcn.10085ccb
mov eax, dword [edi]
xor edx, edx
push edx
push edi
call dword [eax + 0x20]
mov edi, eax
test edi, edi
jne 0x10085127
push esi
mov byte [esp + 0x404], 0x10
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor ecx, ecx
mov edi, ecx
test ebx, ebx
je 0x10084b5e
mov eax, dword [esp + 0x6c]
mov esi, dword [eax + edi*4]
cmp byte [esi + 0xb8], cl
jne 0x10084c0f
inc edi
cmp edi, ebx
jb 0x10084bfa
jmp 0x10084b5e
mov byte [esi + 0xb8], cl
lea ecx, [esi + 0x24]
push dword [esp + 0x28]
call fcn.100093a0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10084c35
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 0x1c]
call fcn.1000913a
mov ecx, dword [esi + 0x14]
push dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
call fcn.1000944a
lea ecx, [esi + 8]
call fcn.100b6d20
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x58]
push dword [esi + 0xc]
dec eax
mov dword [esi + 0xbc], eax
call fcn.10003027
push edi
lea ecx, [esp + 0x44]
call fcn.10003027
jmp 0x10084b5e
mov eax, dword [esp + 0x80]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x39], 0
je 0x10084c93
inc edi
mov dword [esp + 0x10], edi
jmp 0x10085104
mov eax, dword [edx]
lea ecx, [esp + 0x208]
mov ebp, dword [eax + edi*4]
mov dword [esp + 0x50], ebp
call fcn.1007f282
lea ecx, [esp + 0x180]
mov byte [esp + 0x400], 0x12
call fcn.1007f282
xor eax, eax
mov byte [esp + 0x200], al
mov byte [esp + 0x400], 0x13
cmp byte [ebp + 1], al
je 0x10084cd7
cmp byte [ebp], al
jne 0x10084d3b
mov eax, dword [esp + 0x410]
mov ecx, dword [ebp + 8]
mov eax, dword [eax]
mov esi, dword [eax + ecx*4]
lea ecx, [esp + 0x208]
push esi
call fcn.1008380b
mov eax, dword [esi + 0x68]
mov ecx, dword [esp + 0x40c]
mov dword [esp + 0x270], eax
lea eax, [esp + 0x208]
push eax
call fcn.100817c7
test eax, eax
jne 0x1008517e
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x184]
call fcn.1008380b
cmp byte [ebp], 0
je 0x1008505d
mov esi, dword [esp + 0x18]
cmp byte [ebp + 1], 0
je 0x10084d46
mov al, byte [ebp + 2]
jmp 0x10084d52
lea ecx, [esp + 0x180]
call fcn.1008288f
test al, al
je 0x10084d74
mov edx, dword [esp + 0x418]
lea eax, [esp + 0x180]
mov ecx, dword [esp + 0x20]
push eax
push ebp
call fcn.1008604c
jmp 0x10085099
cmp esi, edi
jge 0x10084dc1
mov esi, dword [esp + 0x418]
lea eax, [esp + 0x180]
mov ecx, dword [esp + 0x20]
mov edx, esi
push eax
push ebp
mov dword [esp + 0x20], edi
call fcn.10083ee8
cmp byte [esi + 0x24], 0
je 0x10084da8
cmp byte [esi + 0x15], 0
je 0x10084da8
xor eax, eax
inc eax
jmp 0x10084daa
xor eax, eax
mov ecx, dword [esp + 0x20]
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [esp + 0x1b4]
call fcn.10082abe
mov eax, dword [esp + 0x80]
mov esi, dword [eax + edi*4]
cmp byte [esi + 0x38], 0
je 0x10084e92
xor eax, eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
mov byte [esp + 0x404], 0x14
call fcn.100829cb
push dword [esp + 0x10]
mov ecx, esi
push dword [esp + 0xa8]
call fcn.10008294
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x180]
push eax
push ebp
mov ebp, dword [esp + 0x420]
mov edx, ebp
call fcn.10083ee8
cmp byte [ebp + 0x24], 0
je 0x10084e31
cmp byte [ebp + 0x15], 0
je 0x10084e31
xor eax, eax
lea edx, [eax + 1]
jmp 0x10084e35
xor eax, eax
mov edx, eax
lea eax, [esp + 0x180]
push eax
movzx eax, byte [ebp + 0x16]
lea ecx, [esi + 0x20]
push eax
call fcn.10083ff2
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x180]
push eax
call fcn.1008310d
mov ecx, dword [esp + 0x20]
call fcn.10082b31
lea eax, [esp + 0xa0]
mov ecx, esi
push eax
call fcn.10008257
mov eax, dword [esp + 0x10]
mov byte [esp + 0x400], 0x13
test eax, eax
je 0x10085099
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10085099
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x6c]
mov ecx, dword [edi]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x1c]
mov al, byte [eax + 0x15]
test al, al
jne 0x10084ef8
xor eax, eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x404], 0x15
call fcn.100829cb
push dword [esp + 0x3c]
mov ecx, dword [esi + 0x1c]
call fcn.100840c0
mov ecx, dword [esi + 0x1c]
xor eax, eax
inc eax
mov byte [ecx + 0x15], al
add ecx, 0x1c
call fcn.100b6d20
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x400], 0x13
test eax, eax
je 0x10084ef8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [esp + 0x5c]
xor eax, eax
push 0xffffffffffffffff
push eax
push dword [esp + 0x60]
push esi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x1008516c
cmp ebp, esi
jae 0x10085165
mov ecx, dword [esp + 0x6c]
mov edx, dword [edi + ebp*4]
mov esi, dword [ecx + edx*4]
mov dword [esp + 0x78], esi
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x10084f3f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor eax, eax
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x98]
xor eax, eax
inc eax
mov byte [esi + 0xb8], al
test edi, edi
jne 0x10085183
lea esi, [ebp + 1]
push esi
push ebp
lea ecx, [esp + 0x48]
call fcn.1000a2d8
dec dword [esp + 0x44]
lea ecx, [esp + 0x58]
push esi
push ebp
call fcn.1000a2d8
dec dword [esp + 0x5c]
mov esi, dword [esp + 0x78]
test ebp, ebp
jne 0x10085007
mov ecx, dword [esi + 0x1c]
call fcn.10009377
mov edi, eax
test edi, edi
jne 0x10085183
mov ecx, dword [esi + 0x1c]
call fcn.10083e33
mov ebp, dword [esp + 0x418]
lea eax, [esp + 0x180]
mov edi, dword [esp + 0x20]
mov edx, ebp
push eax
push dword [esp + 0x54]
mov ecx, edi
call fcn.10083ee8
cmp byte [ebp + 0x24], 0
je 0x10084fd0
cmp byte [ebp + 0x15], 0
je 0x10084fd0
xor eax, eax
lea edx, [eax + 1]
jmp 0x10084fd4
xor eax, eax
mov edx, eax
lea eax, [esp + 0x180]
push eax
movzx eax, byte [ebp + 0x16]
lea ecx, [esi + 0xa0]
push eax
call fcn.10083ff2
lea eax, [esp + 0x180]
mov ecx, edi
push eax
call fcn.1008310d
mov ecx, edi
call fcn.10082b31
jmp 0x10085095
mov ecx, dword [esi + 0xbc]
mov eax, dword [esp + 0x80]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [esi + 0x1c]
push ebx
call fcn.10009109
push 6
pop ecx
add esi, 0xa0
lea edi, [ebx + 0x20]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
lea ecx, [esp + 0x180]
inc eax
mov byte [ebx + 0x38], al
call fcn.1007c2ac
lea ecx, [esp + 0x208]
mov byte [esp + 0x400], 0xb
call fcn.1007c2ac
mov ebx, dword [esp + 0x30]
jmp 0x10084b94
mov edx, dword [esp + 0x40c]
lea eax, [esp + 0x34]
mov ecx, dword [esp + 0x20]
push eax
push dword [esp + 0x50]
lea eax, [esp + 0x188]
push dword [esp + 0x24]
push eax
push ebp
lea eax, [esp + 0x21c]
push eax
call fcn.10085a70
mov edi, eax
test edi, edi
jne 0x10085183
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x180]
push eax
lea ecx, [esp + 0x90]
call fcn.10083992
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
add ecx, 0x1e
push 0
pop edx
adc eax, edx
mov dword [esp + 0x34], ecx
push eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [eax + 8]
call fcn.100840df
inc edi
lea ecx, [esp + 0x180]
mov dword [esp + 0x10], edi
call fcn.1007c2ac
lea ecx, [esp + 0x208]
mov byte [esp + 0x400], 0xb
call fcn.1007c2ac
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x414]
mov eax, dword [eax + 4]
cmp edi, eax
jae 0x10085198
mov edx, dword [esp + 0x414]
jmp 0x100849af
mov edi, 0x80070057
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x400], 0xf
test eax, eax
je 0x1008514b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x1008514b
mov edi, 0x80004001
lea ecx, [esp + 0x2c0]
call fcn.1007c2ac
lea ecx, [esp + 0xc8]
call fcn.1007c2ac
jmp 0x100851c9
mov edi, 0x80004005
jmp 0x10085183
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov edi, 0x80004005
cmovne edi, eax
jmp 0x10085183
mov edi, 0x80004001
lea ecx, [esp + 0x180]
call fcn.1007c2ac
lea ecx, [esp + 0x208]
jmp 0x1008515e
xor ebx, ebx
lea ecx, [esp + 0x278]
push ebx
push ebx
push ebx
call fcn.10009498
mov edi, eax
test edi, edi
jne 0x100851c9
push dword [esp + 0x41c]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x90]
push eax
call fcn.10082c28
mov edi, ebx
push dword [esp + 0x40]
call fcn.1000366d
push dword [esp + 0x5c]
call fcn.1000366d
pop ecx
pop ecx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x400], 8
call fcn.100837e7
lea ecx, [esp + 0x7c]
mov byte [esp + 0x400], 7
call fcn.10083627
lea ecx, [esp + 0xa0]
mov byte [esp + 0x400], 6
call fcn.100835de
lea ecx, [esp + 0x278]
mov byte [esp + 0x400], 5
call fcn.1008366e
mov ecx, dword [esp + 0x1c]
push ecx
mov byte [esp + 0x404], 4
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [esp + 0x8c]
call fcn.1007c1b8
lea ecx, [esp + 0x138]
call fcn.1007b3bb
xor eax, eax
lea ecx, [esp + 0x388]
mov byte [esp + 0x400], al
call fcn.1007b356
or dword [esp + 0x400], 0xffffffff
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x1008527c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0x3f8]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret 0x18