Function at 0x3028c9f
Capabilities:
Create thread

Disassembly:
push 0xf08
mov eax, 0x31096e5
call fcn.0307e411
mov ebx, edx
mov dword [ebp - 0xf04], ebx
mov dword [ebp - 0xebc], ecx
mov eax, dword [ebp + 0xc]
mov esi, 0x806d0005
mov edi, dword [ebp + 8]
mov dword [ebp - 0xec0], eax
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x234], ax
mov dword [ebp - 0xef0], eax
lea eax, [ebp - 0x232]
push eax
mov dword [ebp - 0xecc], edi
mov dword [ebp - 0xeb0], esi
mov dword [ebp - 0xeb4], esi
call sub.msvcrt.dll_memset
xor eax, eax
add esp, 0xc
mov dword [ebp - 0xee8], eax
mov dword [ebp - 0xec8], eax
mov dword [ebp - 0xed0], eax
mov dword [ebp - 0xeec], eax
mov dword [ebp - 0xee4], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0xf00], eax
mov dword [ebp - 0xefc], eax
mov dword [ebp - 0xef8], eax
push 0x20a
push eax
lea eax, [ebp - 0xe94]
mov byte [ebp - 4], 1
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
cmp dword [ebp + 0x10], 0
jne 0x3028d92
lea ecx, [ebx + 0x32]
mov edx, 0x3015d30
call fcn.030471ad
test eax, eax
jne 0x3028d92
mov ecx, dword [ebp - 0xec0]
call fcn.0304a82c
test eax, eax
jne 0x3028d92
test dword [0x310fb18], 0x400
je 0x3028d92
mov dword [0x310fb1c], 1
lea eax, [esi + 1]
jmp 0x3028dfa
xor eax, eax
cmp dword [ebx + 0xfbc], eax
jne 0x3028da1
push 0x13
pop eax
jmp 0x3028dfa
xor eax, eax
lea ecx, [ebx + 0x32]
mov edx, 0x3015d30
mov word [ebp - 0xc7c], ax
call fcn.030471ad
test eax, eax
je 0x3028e14
lea eax, [ebx + 0x32]
push eax
lea eax, [ebp - 0x234]
push 0x105
push eax
call fcn.0307d822
pop ecx
pop ecx
push dword [ebp + 0x14]
lea edx, [ebp - 0x234]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0xec0]
call fcn.030275d0
mov esi, eax
test esi, esi
je 0x3029034
mov eax, 0x806d0005
xor ebx, ebx
mov byte [ebp - 4], bl
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xefc], ebx
mov dword [ebp - 0xef8], ebx
jmp 0x3029d0a
mov eax, dword [ebp - 0xebc]
cmp dword [eax + 0x59bc], 4
jne 0x3028e91
add eax, 0x55a8
xor ecx, ecx
cmp word [eax], cx
je 0x3028e91
push eax
lea eax, [ebp - 0x234]
push 0x105
push eax
call fcn.0307d822
pop ecx
pop ecx
push dword [ebp + 0x14]
lea edx, [ebp - 0x234]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0xec0]
call fcn.030275d0
mov esi, eax
test esi, esi
jne 0x3028df5
mov eax, dword [ebp - 0xebc]
push 8
pop ecx
mov dword [ebx + 0xcb0], 2
mov dword [eax + 0x59bc], ecx
mov eax, dword [ebx + 0xfbc]
test eax, eax
je 0x3029c6b
mov dword [eax + 0x14], ecx
jmp 0x3029c6b
xor eax, eax
lea edi, [ebp - 0xf14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebx + 0xfd4]
cmp dword [eax + 4], 3
jne 0x3028ec3
cmp dword [eax + 0xc], 0x14
jne 0x3028ec3
mov eax, dword [eax + 8]
mov dword [ebp - 0xec0], eax
mov edx, dword [eax + 0x10]
mov dword [ebp - 0xed8], edx
jmp 0x3028ed2
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xed8], eax
mov eax, dword [ebp - 0xec0]
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x3028ee1
mov dword [ebp - 0xf14], ecx
jmp 0x3028ef7
test eax, eax
je 0x3028ef7
mov esi, eax
lea edi, [ebp - 0xf14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xeb0]
mov edi, dword [ebp - 0xecc]
lea eax, [ebp - 0xa6c]
push 0x101
push eax
push 0x105
lea eax, [ebp - 0x864]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push edi
call fcn.0307db8f
add esp, 0x24
lea eax, [ebp - 0x864]
push 0x3015d30
push eax
push 0x30155b0
lea eax, [ebp - 0x654]
push 0x105
push eax
call fcn.0307d708
mov edx, dword [0x310fb18]
add esp, 0x14
test edx, 0x8000000
je 0x3029142
test edx, 0x200000
jne 0x3029049
xor ecx, ecx
cmp dword [ebx + 0x448], ecx
je 0x3029049
lea eax, [ebx + 0x32]
cmp word [eax], cx
je 0x3029049
push ecx
push ecx
push ecx
push ecx
mov esi, 0x105
lea ecx, [ebp - 0x444]
push esi
push ecx
push 6
lea ecx, [ebp - 0x20]
push ecx
push eax
call fcn.0307db8f
add esp, 0x24
lea eax, [ebp - 0x654]
push eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x20]
push eax
push 0x30155bc
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0307d708
mov edx, dword [ebx + 0xd54]
lea eax, [ebp - 0x234]
mov ecx, dword [ebx + 8]
add esp, 0x18
push 0x104
push edi
push eax
xor eax, eax
push eax
call fcn.03027916
test eax, eax
je 0x3029005
push edi
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0307d822
add esp, 0xc
mov dword [ebp - 0xed0], 1
push ecx
push dword [ebp - 0xed8]
lea edx, [ebp - 0x234]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0xec0]
call fcn.030275d0
mov esi, eax
mov dword [ebp - 0xeb0], esi
mov dword [ebp - 0xeb4], esi
test esi, esi
jne 0x3029043
mov dword [ebx + 0xcb0], 2
jmp 0x3029c6b
mov edx, dword [0x310fb18]
mov ecx, edi
lea eax, [ebp - 0x234]
mov bx, word [eax]
cmp bx, word [ecx]
mov ebx, dword [ebp - 0xf04]
jne 0x3029090
cmp word [eax], 0
je 0x302908c
mov si, word [eax + 2]
cmp si, word [ecx + 2]
mov word [ebp - 0xeb6], si
mov esi, dword [ebp - 0xeb0]
jne 0x3029090
add eax, 4
add ecx, 4
cmp word [ebp - 0xeb6], 0
jne 0x3029051
xor eax, eax
jmp 0x3029095
sbb eax, eax
or eax, 1
test eax, eax
je 0x302913a
test dl, dl
js 0x302913a
push edi
mov esi, 0x105
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0307d822
add esp, 0xc
cmp dword [ebp - 0xed0], 0
jne 0x3029101
mov edx, dword [ebx + 0xd54]
lea eax, [ebp - 0x234]
mov ecx, dword [ebx + 8]
push 0x104
push edi
push eax
xor eax, eax
push eax
call fcn.03027916
test eax, eax
je 0x3029101
push edi
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0307d822
add esp, 0xc
mov dword [ebp - 0xed0], 1
push ecx
push dword [ebp - 0xed8]
lea edx, [ebp - 0x234]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0xec0]
call fcn.030275d0
mov esi, eax
mov dword [ebp - 0xeb0], esi
mov dword [ebp - 0xeb4], esi
test esi, esi
jne 0x3029142
mov dword [ebx + 0xcb0], 5
test esi, esi
je 0x3029c6b
mov edi, dword [ebx + 8]
jmp 0x302922e
push ecx
lea edx, [ebp - 0x444]
mov dword [ebp - 0xee0], edi
mov ecx, edi
call fcn.0303bc20
cmp word [ebp - 0x444], 0
mov edi, eax
je 0x302922e
test dword [0x310fb18], 0x10000000
jne 0x302919a
mov eax, dword [ebp - 0xebc]
lea edx, [ebp - 0x444]
mov ecx, dword [ebx + 4]
add eax, 0x1e
push eax
call fcn.03027c65
test eax, eax
jne 0x302922e
push 0x31129ac
push 0x20a
call fcn.0307ce7d
mov esi, eax
mov dword [ebp - 0xec4], esi
pop ecx
pop ecx
test esi, esi
je 0x30292a4
push 0x20a
xor eax, eax
push eax
push esi
call sub.msvcrt.dll_memset
lea ecx, [ebp - 0x444]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0xef0]
jne 0x30291d5
sub ecx, edx
sar ecx, 1
cmp ecx, 0x104
ja 0x302926a
push 0x105
lea edx, [ebp - 0x444]
mov ecx, esi
call fcn.03068356
lea eax, [ebp - 0xec4]
push eax
lea ecx, [ebp - 0xeec]
call fcn.03031f10
test eax, eax
je 0x302924b
lea eax, [ebp - 0xee0]
push eax
lea ecx, [ebp - 0xf00]
call fcn.03031f10
test eax, eax
je 0x302923b
test edi, edi
jne 0x302914a
jmp 0x30292cd
call fcn.030320ab
test eax, eax
je 0x30292bc
push 0x3015688
jmp 0x30292b2
call fcn.030320ab
test eax, eax
je 0x3029263
push 0x3015618
push dword [ebx + 4]
call fcn.0304a010
pop ecx
pop ecx
mov eax, 0x806d0003
jmp 0x302928f
call fcn.030320ab
test eax, eax
je 0x302928a
lea eax, [ebp - 0x444]
push eax
push 0x30155d0
push dword [ebx + 4]
call fcn.0304a010
add esp, 0xc
mov eax, 0x806d0013
push esi
mov dword [ebp - 0xeb0], eax
mov dword [ebp - 0xeb4], eax
call sub.msvcrt.dll_free
pop ecx
jmp 0x30292cd
call fcn.030320ab
test eax, eax
je 0x30292bc
push 0x3015710
push dword [ebx + 4]
call fcn.0304a010
pop ecx
pop ecx
mov eax, 0x806d0003
mov dword [ebp - 0xeb4], eax
mov dword [ebp - 0xeb0], eax
mov esi, dword [ebp - 0xee8]
xor edx, edx
mov dword [ebp - 0xedc], edx
mov eax, edx
mov dword [ebp - 0xeb8], eax
test esi, esi
je 0x3029a50
xor ecx, ecx
mov eax, esi
mov edx, 0x6ee0
mul edx
push 0x31129ac
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0307ce7d
mov edi, eax
mov dword [ebp - 0xedc], edi
pop ecx
pop ecx
test edi, edi
je 0x3029a17
imul ecx, esi, 0x6ee0
xor eax, eax
push ecx
push eax
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0xec4], edi
mov eax, edi
add eax, 0x6ec8
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
xor eax, eax
mov ecx, eax
mov dword [ebp - 0xef4], ecx
test esi, esi
je 0x3029896
mov eax, dword [ebp - 0xeb8]
test edi, edi
je 0x3029896
test eax, eax
jne 0x3029896
mov eax, dword [ebp - 0xedc]
push ecx
lea ecx, [ebp - 0xeec]
mov dword [edi + 4], eax
mov dword [edi + 8], esi
call fcn.03031f8d
lea ecx, [edi + 0x5c08]
push 0x105
mov edx, dword [eax]
call fcn.03068356
push dword [ebp - 0xef4]
lea ecx, [ebp - 0xf00]
call fcn.03031f8d
mov edx, dword [ebp - 0xebc]
mov ecx, ebx
mov eax, dword [eax]
mov dword [edi + 0x6c7c], eax
lea eax, [edi + 0x10]
push eax
call fcn.030285cc
test al, al
je 0x30299e4
mov esi, dword [ebp - 0xec0]
lea edx, [ebp - 0xc7c]
add edi, 0x601c
mov eax, dword [ebp + 0x10]
xor ecx, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xec4]
lea esi, [ebp - 0xf14]
mov dword [edi + 0x602c], eax
mov eax, dword [ebp - 0xed8]
mov dword [edi + 0x6030], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x6034], eax
mov eax, 0x806d0005
mov dword [edi + 0x6c78], ecx
mov dword [edi + 0x6c74], eax
add edi, 0x6c84
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xec4]
mov esi, 0x105
push esi
mov dword [edi + 0x6c94], ecx
lea ecx, [edi + 0x6038]
mov dword [edi + 0x6c98], eax
call fcn.03068356
push esi
lea ecx, [edi + 0x6242]
lea edx, [ebp - 0x864]
call fcn.03068356
push esi
lea ecx, [edi + 0x644c]
lea edx, [ebp - 0x654]
call fcn.03068356
push esi
lea ecx, [edi + 0x6656]
lea edx, [ebp - 0xa6c]
call fcn.03068356
mov esi, dword [ebp - 0xedc]
lea ecx, [edi + 0x5c08]
xor eax, eax
mov dword [esi + 0x6ec4], eax
call fcn.0302842b
and al, 1
mov edx, 0xffdf
movzx ecx, al
mov ax, word [edi + 0x6eb4]
shl cx, 5
and ax, dx
or cx, ax
mov word [edi + 0x6eb4], cx
lea ecx, [edi + 0x5c08]
call fcn.030283f1
and al, 1
mov ecx, 0xffbf
movzx edx, al
mov ax, word [edi + 0x6eb4]
shl dx, 6
and ax, cx
or dx, ax
mov word [edi + 0x6eb4], dx
test dl, 0x40
je 0x30294f9
lea ecx, [edi + 0x5c08]
call fcn.030283b1
mov dword [edi + 0x6c80], eax
mov ecx, dword [ebx + 4]
call fcn.0303856d
and al, 1
mov edx, 0xff7f
movzx ecx, al
mov ax, word [edi + 0x6eb4]
and ax, dx
shl cx, 7
or cx, ax
xor eax, eax
push eax
push eax
push edi
push 0x3028b12
push eax
push eax
mov word [edi + 0x6eb4], cx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi], eax
test eax, eax
je 0x30299bd
xor edx, edx
mov dword [ebp - 0xed4], 1
mov dword [ebp - 0xef0], edx
mov dword [ebp - 0xec4], edx
jmp 0x302955f
mov esi, dword [ebp - 0xedc]
push 0x1f4
push dword [edi]
mov dword [ebp - 0xee0], edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x3029672
cmp eax, 0x80
je 0x302965d
cmp eax, 0x102
je 0x30295a0
cmp eax, 0xffffffff
je 0x302965d
mov esi, dword [ebp - 0xeb0]
jmp 0x302983b
mov eax, dword [0x31146bc]
test eax, eax
je 0x30295fe
call eax
test eax, eax
je 0x30295fe
lea eax, [ebp - 0xeb4]
mov edx, ebx
push eax
mov ecx, esi
call fcn.030282c2
test eax, eax
je 0x30295db
call fcn.030320ab
test eax, eax
je 0x30295db
push 0x3015920
push dword [ebx + 4]
call fcn.0304a010
pop ecx
pop ecx
mov dword [ebp - 0xeb8], 1
mov esi, dword [ebp - 0xeb4]
xor edx, edx
mov dword [ebp - 0xed4], edx
mov dword [ebp - 0xeb0], esi
jmp 0x302983d
mov eax, dword [ebp - 0xef0]
cmp eax, 0x1b7740
jae 0x302965d
add eax, 0x1f4
lea edx, [ebp - 0xec4]
lea ecx, [ebp - 0x654]
mov dword [ebp - 0xef0], eax
call fcn.03028352
xor edx, edx
test eax, eax
je 0x3029652
cmp word [eax], dx
je 0x3029652
mov ecx, dword [ebx + 4]
mov edx, 0x50000000
push eax
lea eax, [ebp - 0xeac]
push eax
push dword [ebp - 0xebc]
call fcn.030497b2
jmp 0x3029595
mov esi, dword [ebp - 0xeb0]
jmp 0x302983d
lea eax, [ebp - 0xeb4]
mov edx, ebx
push eax
mov ecx, esi
call fcn.030282c2
jmp 0x30295e5
mov esi, dword [edi + 0x6c74]
xor ecx, ecx
mov eax, dword [edi + 0x6c78]
mov dword [ebp - 0xed4], ecx
mov dword [ebp - 0xeb0], esi
mov dword [ebp - 0xeb4], esi
mov dword [ebp - 0xec8], eax
mov dword [ebx + 0x11f0], eax
test esi, esi
je 0x30296b0
cmp dword [edi + 0x6c78], ecx
jne 0x30296b0
mov dword [edi + 0x6c78], esi
mov eax, dword [edi + 0x6c78]
mov dword [edi + 0x6eb0], eax
lea eax, [ebp - 0xee0]
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x3029823
cmp dword [ebp - 0xee0], 8
jne 0x3029702
call fcn.030320ab
test eax, eax
je 0x30296f4
push 0x3015858
push dword [ebx + 4]
call fcn.0304a010
pop ecx
pop ecx
xor eax, eax
inc eax
mov dword [ebp - 0xeb8], eax
jmp 0x302983b
mov eax, 0x23e
cmp dword [ebp - 0xee0], eax
jne 0x3029744
mov esi, eax
mov dword [ebx + 0x11f0], eax
mov dword [ebp - 0xec8], eax
xor edx, edx
mov dword [0x310fb1c], eax
xor eax, eax
inc eax
mov dword [ebp - 0xeb0], esi
mov dword [ebp - 0xeb4], esi
mov dword [ebp - 0xed4], edx
mov dword [ebp - 0xeb8], eax
jmp 0x302983d
lea edx, [edi + 0x6860]
push 0x105
lea ecx, [ebp - 0x234]
call fcn.03068356
push 0x105
lea edx, [edi + 0x59fc]
lea ecx, [ebx + 0xfe0]
call fcn.03068356
mov ecx, dword [ebp - 0xebc]
lea edx, [edi + 0x55d0]
push 0x209
lea ecx, [ecx + 0x55a8]
call fcn.03068356
mov eax, dword [edi + 0x59f8]
lea ecx, [ebp - 0xeec]
push dword [ebp - 0xef4]
mov dword [ebx + 0x121c], eax
mov eax, dword [edi + 0x6c94]
mov dword [ebp - 0xed0], eax
call fcn.03031f8d
mov ecx, dword [eax]
movzx eax, word [edi + 0x6eb4]
test al, 0x60
jne 0x30297d9
cmp dword [edi + 0x6c78], 0xfdb97537
mov edx, edi
jne 0x30297e8
lea eax, [edi + 0x6860]
push eax
jmp 0x30297e9
xor edx, edx
lea eax, [edi + 0x6860]
cmp word [eax], dx
mov edx, edi
jne 0x30297d6
push ecx
mov ecx, dword [ebp - 0xebc]
call fcn.03028165
movzx eax, word [edi + 0x6eb4]
test al, 2
je 0x302980c
test al, 0x10
jne 0x3029810
test esi, esi
jne 0x3029810
jmp 0x30296f4
test al, 8
jne 0x3029803
cmp word [ebp - 0x234], 0
je 0x302983b
test esi, esi
jne 0x302983b
jmp 0x30296f4
call fcn.030320ab
test eax, eax
je 0x302983b
push 0x30158b0
push dword [ebx + 4]
call fcn.0304a010
pop ecx
pop ecx
xor edx, edx
inc dword [ebp - 0xec4]
cmp dword [ebp - 0xed4], 0
jne 0x3029559
cmp esi, 0x3e3
je 0x3029869
cmp dword [edi], 0
je 0x3029869
push dword [edi]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov dword [edi], eax
mov ecx, dword [ebp - 0xef4]
add edi, 0x6ee0
mov esi, dword [ebp - 0xee8]
inc ecx
mov dword [ebp - 0xef4], ecx
mov dword [ebp - 0xec4], edi
cmp ecx, esi
jb 0x3029353
mov eax, dword [ebp - 0xeb8]
mov esi, dword [ebp - 0xeb0]
cmp esi, 0x3e3
je 0x3029c16
mov ecx, dword [0x310fb18]
test ecx, 0x8000000
jne 0x3029b5d
test eax, eax
jne 0x3029b5d
test ecx, 0x200000
jne 0x3029a7c
xor ecx, ecx
cmp dword [ebx + 0x448], ecx
je 0x3029a7c
lea eax, [ebx + 0x32]
cmp word [eax], cx
je 0x3029a7c
push ecx
push ecx
push ecx
push ecx
mov esi, 0x105
lea ecx, [ebp - 0x444]
push esi
push ecx
push 6
lea ecx, [ebp - 0x20]
push ecx
push eax
call fcn.0307db8f
add esp, 0x24
lea eax, [ebp - 0x654]
push eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x20]
push eax
push 0x30155bc
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0307d708
mov edi, dword [ebp - 0xecc]
add esp, 0x18
cmp dword [ebp - 0xed0], 0
jne 0x302997b
mov edx, dword [ebx + 0xd54]
lea eax, [ebp - 0x234]
mov ecx, dword [ebx + 8]
push 0x104
push edi
push eax
xor eax, eax
push eax
call fcn.03027916
test eax, eax
je 0x302997b
push edi
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0307d822
add esp, 0xc
mov dword [ebp - 0xed0], 1
push ecx
push dword [ebp - 0xed8]
lea edx, [ebp - 0x234]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0xec0]
call fcn.030275d0
mov esi, eax
mov dword [ebp - 0xeb0], esi
test esi, esi
jne 0x3029a8a
mov dword [ebx + 0xcb0], 2
mov dword [ebp - 0xec8], eax
jmp 0x3029a82
call fcn.030320ab
test eax, eax
je 0x30299dd
lea eax, [edi + 0x5c08]
push eax
push 0x30157e0
push dword [ebx + 4]
call fcn.0304a010
add esp, 0xc
mov esi, 0x806d0003
jmp 0x3029a42
call fcn.030320ab
test eax, eax
je 0x3029a04
lea eax, [edi + 0x5c08]
push eax
push 0x3015768
push dword [ebx + 4]
call fcn.0304a010
add esp, 0xc
mov esi, 0x806d0003
xor eax, eax
mov dword [ebp - 0xeb0], esi
inc eax
jmp 0x30298a8
call fcn.030320ab
test eax, eax
je 0x3029a2f
push 0x3015948
push dword [ebx + 4]
call fcn.0304a010
pop ecx
pop ecx
mov eax, 0x806d0003
mov esi, eax
mov dword [ebx + 0x11f0], eax
mov dword [ebp - 0xec8], eax
xor eax, eax
mov dword [ebp - 0xeb0], esi
inc eax
jmp 0x302989c
mov ecx, 0x806d0005
mov dword [0x310fb1c], 2
mov esi, ecx
mov dword [ebx + 0x11f0], ecx
mov dword [ebp - 0xeb0], esi
mov dword [ebp - 0xec8], 0xfdb97531
jmp 0x302989c
mov edi, dword [ebp - 0xecc]
test esi, esi
je 0x3029bfd
mov ecx, edi
lea eax, [ebp - 0x234]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x3029ab8
test dx, dx
je 0x3029ab4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x3029ab8
add eax, 4
add ecx, 4
test dx, dx
jne 0x3029a92
xor eax, eax
jmp 0x3029abd
sbb eax, eax
or eax, 1
test eax, eax
je 0x3029b5d
test byte [0x310fb18], 0x80
jne 0x3029b5d
push edi
mov esi, 0x105
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0307d822
add esp, 0xc
cmp dword [ebp - 0xed0], 0
jne 0x3029b24
mov edx, dword [ebx + 0xd54]
lea eax, [ebp - 0x234]
mov ecx, dword [ebx + 8]
push 0x104
push edi
push eax
xor eax, eax
push eax
call fcn.03027916
test eax, eax
je 0x3029b24
push edi
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.0307d822
add esp, 0xc
push ecx
push dword [ebp - 0xed8]
lea edx, [ebp - 0x234]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0xec0]
call fcn.030275d0
mov esi, eax
mov dword [ebp - 0xeb0], esi
test esi, esi
jne 0x3029b65
mov dword [ebx + 0xcb0], 5
mov dword [ebp - 0xec8], eax
test esi, esi
je 0x3029bfd
lea eax, [ebx + 0xfe0]
xor edi, edi
cmp word [eax], di
je 0x3029bfd
test byte [0x310fb18], 0x40
je 0x3029bbf
push eax
lea eax, [ebp - 0x234]
push 0x105
push eax
call fcn.0307d822
pop ecx
pop ecx
push edi
push edi
push edi
lea edx, [ebp - 0x234]
mov ecx, ebx
call fcn.030275d0
mov esi, eax
mov dword [ebp - 0xeb0], esi
test esi, esi
jne 0x3029bbf
mov dword [ebx + 0xcb0], 1
mov dword [ebp - 0xec8], edi
and dword [ebx + 0x11ec], 1
call fcn.030320ab
test eax, eax
je 0x3029bfd
lea ecx, [ebx + 0x32]
cmp word [ecx], di
jne 0x3029bdd
lea ecx, [ebp - 0x654]
mov eax, 0x30159bc
test esi, esi
je 0x3029beb
mov eax, 0x30159cc
push ecx
push eax
push 0x30159e8
push dword [ebx + 4]
call fcn.0304a010
add esp, 0x10
cmp esi, 0x3e3
je 0x3029c16
mov eax, dword [ebp - 0xedc]
test eax, eax
je 0x3029c16
mov ecx, eax
call fcn.0302869b
mov eax, dword [ebp - 0xee8]
test eax, eax
je 0x3029c61
xor ecx, ecx
mov edi, ecx
test eax, eax
je 0x3029c61
mov ebx, eax
xor esi, esi
push edi
lea ecx, [ebp - 0xeec]
call fcn.03031f8d
cmp dword [eax], esi
je 0x3029c50
push edi
lea ecx, [ebp - 0xeec]
call fcn.03031f8d
push dword [eax]
call sub.msvcrt.dll_free
pop ecx
inc edi
cmp edi, ebx
jb 0x3029c2c
mov ebx, dword [ebp - 0xf04]
mov esi, dword [ebp - 0xeb0]
test esi, esi
jne 0x3029c87
mov edi, dword [ebp - 0xecc]
lea eax, [ebp - 0x234]
push eax
push 0x104
push edi
call fcn.0307d822
add esp, 0xc
xor eax, eax
mov dword [0x310fb1c], eax
mov ecx, dword [ebp - 0xec8]
mov eax, dword [ebp - 0xebc]
test ecx, ecx
je 0x3029c9f
mov dword [eax + 0x59c8], ecx
jmp 0x3029ca5
mov dword [eax + 0x59c8], esi
push 0x3015e00
lea ecx, [ebp - 0xeac]
mov edx, 0x50000000
push ecx
mov ecx, dword [ebx + 4]
push eax
call fcn.030497b2
xor ebx, ebx
mov byte [ebp - 4], bl
mov edi, dword [sym.imp.msvcrt.dll_free]
cmp dword [ebp - 0xf00], ebx
je 0x3029ce1
push dword [ebp - 0xf00]
call edi
pop ecx
mov dword [ebp - 0xf00], ebx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xefc], ebx
mov dword [ebp - 0xef8], ebx
cmp dword [ebp - 0xeec], ebx
je 0x3029d08
push dword [ebp - 0xeec]
call edi
pop ecx
mov dword [ebp - 0xeec], ebx
mov eax, esi
mov dword [ebp - 0xee8], ebx
mov dword [ebp - 0xee4], ebx
call fcn.0307e3c5
ret 0x14