Function at 0x10044660
Capabilities:
Check if file exists
Get common file path
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10098033
mov eax, dword fs:[0]
push eax
sub esp, 0x558
mov eax, dword [0x100b0380]
xor eax, ebp
mov dword [ebp - 0x40], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 4
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x18], eax
push 4
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
call fcn.10079c4e
cdq
mov ecx, 0x65
idiv ecx
add edx, 2
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
call fcn.10079c4e
cdq
mov ecx, 0x65
idiv ecx
add edx, 0x200
mov eax, dword [ebp - 0x28]
mov dword [eax], edx
push str._ZwQuneryAttributesFile
push 0x1009e95c
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x14], eax
push 0x50
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x20], eax
push 0x50
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x30], eax
push ebx
mov ebx, dword [ebp - 0x14]
cmp ebx, 0
je 0x100447aa
add ebx, 8
mov dword [ebp - 0x38], ebx
imul ebx, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x20]
push ebx
mov ebx, dword [ebp - 0x30]
push ebx
mov ebx, dword [ebp - 0x14]
call ebx
push 0x100447aa
ret
mov ebx, dword [ebp - 0x20]
cmp ebx, 0x80000000
jne 0x10044898
pop ebx
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.10079c70
add esp, 4
mov edx, dword [ebp - 0x30]
push edx
call fcn.10079c70
add esp, 4
push 0x100dfed0
mov eax, 0x100e3aa4
call fcn.10057600
test eax, eax
jne 0x10044827
mov eax, dword [ebp + 8]
push eax
push 0
push 0x1a6
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov eax, dword [ebp - 0x18]
push eax
call fcn.10079c70
add esp, 4
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.10079c70
add esp, 4
xor eax, eax
jmp 0x10045300
push 0x100dfed0
xor esi, esi
call fcn.10013ed0
add esp, 4
test eax, eax
jne 0x1004487b
mov edx, dword [ebp + 8]
push edx
push 0
push 0x1a7
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov edx, dword [ebp - 0x18]
push edx
call fcn.10079c70
add esp, 4
mov eax, dword [ebp - 0x28]
push eax
call fcn.10079c70
add esp, 4
xor eax, eax
jmp 0x10045300
mov eax, 0x100dfed0
call fcn.10013fe0
mov dword [ebp - 0x34], eax
push edx
mov edx, edx
xor edx, edx
mov edx, dword [ebp - 0x18]
cmp dword [edx], 0x200
jne 0x100448c0
mov ebx, 0x100447b9
push ebx
ret
pop edx
cmp dword [ebp - 0x34], 0
jne 0x10044917
mov eax, 0x100e393c
call fcn.100575d0
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
push 0x1a8
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov edx, dword [ebp - 0x18]
push edx
call fcn.10079c70
add esp, 4
mov eax, dword [ebp - 0x28]
push eax
call fcn.10079c70
add esp, 4
xor eax, eax
jmp 0x10045300
push 0x28
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x30], 0x1000193
mov dword [ebp - 0x38], 0x811c9dc5
cmp dword [ebp - 0x20], 0xa
jge 0x1004496e
mov eax, dword [ebp - 0x20]
imul eax, eax, 0x13
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + eax*4]
add edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
jmp 0x10044939
mov dword [ebp - 0x20], 0
jmp 0x10044dbb
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0x101
jge 0x10044dbb
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], 0xbadb0d00
add edi, dword [esi + 0xe0]
mov ebx, eax
and eax, 0xfff
cmp eax, dword [edi + 8]
cmp ecx, 0x10
inc dword fs:[0x638]
mov esi, edx
mov ebx, dword [edi + 0xc]
xor ecx, ecx
xor ecx, ecx
mov cl, byte [eax + ebx]
mov edi, dword [edi]
mov ebx, dword [edi + eax*4]
sub esp, ecx
shr ecx, 2
mov edi, esp
mov esp, ebp
cmp eax, dword [edi + 8]
cmp ecx, 0x10
mov ecx, dword fs:[0x18]
shr eax, 4
xor eax, eax
push ebx
pop eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.10079c70
add esp, 4
lea edx, [ebp - 0x4d8]
push edx
mov ecx, 0x100e00d8
call fcn.10046450
mov dword [ebp - 0x538], eax
mov eax, dword [ebp - 0x538]
mov dword [ebp - 0x53c], eax
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x53c]
call fcn.10013470
push eax
mov ecx, dword [ebp - 0x34]
push ecx
mov eax, 0x100e3954
call fcn.100577b0
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0xffffffff
lea edx, [ebp - 0x4d8]
push edx
call fcn.100464f0
cmp dword [ebp - 0x24], 0
je 0x100452b5
mov eax, dword [ebp + 8]
push eax
push 0x100a03e4
lea edx, [ebp - 0x60]
call fcn.100377f0
add esp, 8
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x64], 0x10042800
call fcn.10042680
push 0
call fcn.100317f0
add esp, 4
test eax, eax
je 0x10044d21
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0x1b5
mov edx, dword [0x100d9234]
push edx
mov eax, dword [str.v_ds_dr_dd_d]
push eax
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
xor ecx, ecx
mov word [ebp - 0x484], cx
push 0x206
push 0
lea edx, [ebp - 0x482]
push edx
call fcn.1007dcf0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x27c], ax
push 0x206
push 0
lea ecx, [ebp - 0x27a]
push ecx
call fcn.1007dcf0
add esp, 0xc
push 1
push 0x1a
lea edx, [ebp - 0x484]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov dword [ebp - 0x540], 0x100e08f8
lea eax, [ebp - 0x27c]
mov dword [ebp - 0x544], eax
mov ecx, dword [ebp - 0x544]
mov dword [ebp - 0x548], ecx
mov edx, dword [ebp - 0x540]
mov ax, word [edx]
mov word [ebp - 0x54a], ax
mov ecx, dword [ebp - 0x544]
mov dx, word [ebp - 0x54a]
mov word [ecx], dx
mov eax, dword [ebp - 0x540]
add eax, 2
mov dword [ebp - 0x540], eax
mov ecx, dword [ebp - 0x544]
add ecx, 2
mov dword [ebp - 0x544], ecx
cmp word [ebp - 0x54a], 0
jne 0x10044b22
lea edx, [ebp - 0x484]
add edx, 0xfffffffe
mov dword [ebp - 0x550], edx
mov eax, dword [ebp - 0x550]
mov cx, word [eax + 2]
mov word [ebp - 0x552], cx
add dword [ebp - 0x550], 2
cmp word [ebp - 0x552], 0
jne 0x10044b79
mov edi, dword [ebp - 0x550]
mov edx, dword [str.360se6]
mov dword [edi], edx
mov eax, dword [0x100a1d00]
mov dword [edi + 4], eax
mov ecx, dword [0x100a1d04]
mov dword [edi + 8], ecx
mov edx, dword [0x100a1d08]
mov dword [edi + 0xc], edx
lea eax, [ebp - 0x484]
mov dword [ebp - 0x558], eax
mov dword [ebp - 0x55c], 0x100e1120
mov ecx, dword [ebp - 0x55c]
mov dword [ebp - 0x560], ecx
mov edx, dword [ebp - 0x558]
mov ax, word [edx]
mov word [ebp - 0x562], ax
mov ecx, dword [ebp - 0x55c]
mov dx, word [ebp - 0x562]
mov word [ecx], dx
mov eax, dword [ebp - 0x558]
add eax, 2
mov dword [ebp - 0x558], eax
mov ecx, dword [ebp - 0x55c]
add ecx, 2
mov dword [ebp - 0x55c], ecx
cmp word [ebp - 0x562], 0
jne 0x10044be5
push 0x100a1cec
lea edx, [ebp - 0x27c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x484]
push eax
xor edi, edi
call fcn.1000db90
add esp, 4
lea ecx, [ebp - 0x27c]
push ecx
xor edi, edi
call fcn.1000db90
add esp, 4
lea edx, [ebp - 0x484]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10044c95
mov eax, dword [ebp + 8]
push eax
push 0
push 0x1b6
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov dword [ebp - 0x488], 0x100444d0
push 0x100a1e7c
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x74], eax
push 0
mov eax, dword [ebp - 0x488]
push eax
lea ecx, [ebp - 0x74]
push ecx
call fcn.1006ad40
add esp, 0xc
test eax, eax
je 0x10044cdb
mov edx, dword [ebp - 0x74]
mov dword [0x100e1118], edx
mov dword [ebp - 0x488], 0x100445c0
push str.CreateDirectoryW
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x74], eax
push 0
mov eax, dword [ebp - 0x488]
push eax
lea ecx, [ebp - 0x74]
push ecx
call fcn.1006ad40
add esp, 0xc
test eax, eax
je 0x10044d21
mov edx, dword [ebp - 0x74]
mov dword [0x100e111c], edx
mov eax, dword [ebp + 8]
push eax
push 0
push 0x1aa
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x60]
push edx
push 0x100e02e0
push 0x100dfac0
push 0x100df8b8
call dword [ebp - 0x24]
add esp, 0x18
mov dword [ebp - 0x6c], eax
push esi
push edi
mov esi, dword [ebp - 0x18]
mov edi, esi
cmp dword [edi], 0x211
jle 0x10044e1c
pop edx
inc dword fs:[0x638]
mov esi, edx
mov ebx, dword [edi + 0xc]
xor ecx, ecx
mov cl, byte [eax + ebx]
mov edi, dword [edi]
mov ebx, dword [edi + eax*4]
sub esp, ecx
mov edi, dword [ebp + 0x68]
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], 0xbadb0d00
mov dword [ebp], ebx
mov dword [ebp + 4], edi
push dword ds:[0xffdf0304]
push 0
push ebp
push ebx
push esi
push edi
mov ebx, dword fs:[0x1c]
cmp dword [ebp - 0x20], 0xa
jge 0x10044dd9
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x38]
xor edx, dword [ecx + eax*4]
imul edx, dword [ebp - 0x30]
mov dword [ebp - 0x38], edx
jmp 0x1004497a
mov eax, dword [ebp - 0x38]
shl eax, 0xd
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
sar eax, 7
xor eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x38]
lea edx, [ecx + eax*8]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
sar eax, 0x11
xor eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
shl eax, 5
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov eax, 0x100449dd
push eax
ret
push edi
pop edi
pop edi
pop esi
mov eax, eax
mov eax, dword [ebp + 8]
push eax
push 0
push 0x1ab
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov dword [ebp - 0x70], 0
cmp dword [ebp - 0x6c], 1
jne 0x100450f7
push str.Synchronous_Se
push 1
push 0
push 0
mov eax, 0x100e38e8
call fcn.100577e0
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x10044e84
push 0xa
mov eax, dword [ebp - 0x70]
push eax
mov eax, 0x100e3a14
call fcn.100577b0
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push 0x100e0b00
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x490], eax
cmp dword [ebp - 0x490], 0xffffffff
je 0x10044ec7
mov ecx, dword [ebp - 0x490]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x490], 0
push 0x100e0b00
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp dword [0x100dee44], 0
je 0x10044efd
mov edx, dword [ebp + 8]
push edx
push 0
push 0x1c3
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov edx, dword [ebp + 8]
push edx
push 0
push 0x324
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
lea edx, [ebp - 0x48c]
push edx
call fcn.1001a210
mov dword [ebp - 4], 1
mov eax, dword [ebp + 8]
push eax
lea esi, [ebp - 0x48c]
call fcn.10045f90
add esp, 4
test eax, eax
je 0x100450c3
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0x329
mov edx, dword [0x100d9234]
push edx
mov eax, dword [str.v_ds_dr_dd_d]
push eax
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
lea ecx, [ebp - 0x494]
push ecx
mov ecx, str.install_protect_lock
call fcn.10046550
mov byte [ebp - 4], 2
call fcn.10047710
test eax, eax
je 0x1004506b
mov dword [ebp - 0x528], 0x3c
lea edx, [ebp - 0x4d0]
mov dword [ebp - 0x524], edx
cmp dword [ebp - 0x528], 0
je 0x10044fd8
mov eax, dword [ebp - 0x524]
mov byte [eax], 0
mov ecx, dword [ebp - 0x524]
add ecx, 1
mov dword [ebp - 0x524], ecx
mov edx, dword [ebp - 0x528]
sub edx, 1
mov dword [ebp - 0x528], edx
jmp 0x10044fa6
mov dword [ebp - 0x4d0], 0x3c
mov dword [ebp - 0x4cc], 0x40
lea eax, [ebp - 0x48c]
call fcn.10013470
mov dword [ebp - 0x4c0], eax
lea eax, [ebp - 0x494]
call fcn.10013470
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 0x4b4], 0
mov dword [ebp - 0x4c4], 0
lea eax, [ebp - 0x4d0]
call fcn.10039a20
mov dword [ebp - 0x4d4], eax
cmp dword [ebp - 0x4d4], 0
je 0x10045069
mov eax, dword [ebp + 8]
push eax
push 0
push 0x325
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
jmp 0x100450b4
lea esi, [ebp - 0x494]
call fcn.1002c410
push eax
lea eax, [ebp - 0x48c]
call fcn.10013470
push eax
mov eax, dword [ebp + 8]
push eax
push 0xc
call fcn.1004eb20
test eax, eax
je 0x100450b4
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0x325
mov edx, dword [0x100d9234]
push edx
mov eax, dword [str.v_ds_dr_dd_d]
push eax
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x494]
call fcn.10013100
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0x326
mov edx, dword [0x100d9234]
push edx
mov eax, dword [str.v_ds_dr_dd_d]
push eax
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48c]
call fcn.10013100
cmp dword [ebp - 0x6c], 1
je 0x10045134
cmp dword [0x100dee44], 1
jne 0x10045134
push str.Synchronous_Se
push 1
push 0
push 0
mov eax, 0x100e38e8
call fcn.100577e0
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x10045134
push 0xa
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, 0x100e3a14
call fcn.100577b0
call fcn.1005b3f0
test eax, eax
je 0x100451e1
cmp dword [ebp - 0x6c], 0
jne 0x1004516b
mov edx, dword [ebp + 8]
push edx
push 0
push 0x1af
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
jmp 0x100451e1
cmp dword [ebp - 0x6c], 1
jne 0x10045195
mov edx, dword [ebp + 8]
push edx
push 0
push 0x1b2
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
jmp 0x100451e1
cmp dword [ebp - 0x6c], 2
jne 0x100451bf
mov edx, dword [ebp + 8]
push edx
push 0
push 0x1b0
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
jmp 0x100451e1
mov edx, dword [ebp + 8]
push edx
push 0
push 0x1b1
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
cmp dword [ebp - 0x6c], 0
jne 0x1004520b
mov edx, dword [ebp + 8]
push edx
push 0
push 0x1ac
mov eax, dword [0x100d9234]
push eax
mov ecx, dword [str.v_ds_dr_dd_d]
push ecx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
jmp 0x10045288
cmp dword [ebp - 0x6c], 1
jne 0x1004523a
mov edx, dword [0x100db91c]
push edx
mov eax, dword [ebp + 8]
push eax
push 0
push 9
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_do_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x18
jmp 0x10045288
cmp dword [ebp - 0x6c], 2
jne 0x10045265
mov eax, dword [ebp + 8]
push eax
push 0
push 0x1ad
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
jmp 0x10045288
mov eax, dword [ebp + 8]
push eax
push 0
push 0x1ae
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov eax, dword [ebp - 0x34]
push eax
mov eax, 0x100e3920
call fcn.10057600
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.10079c70
add esp, 4
mov edx, dword [ebp - 0x28]
push edx
call fcn.10079c70
add esp, 4
mov eax, dword [ebp - 0x6c]
jmp 0x10045300
mov eax, dword [ebp + 8]
push eax
push 0
push 0x1a9
mov ecx, dword [0x100d9234]
push ecx
mov edx, dword [str.v_ds_dr_dd_d]
push edx
xor ecx, ecx
call fcn.1002d3f0
add esp, 0x14
mov eax, dword [ebp - 0x34]
push eax
mov eax, 0x100e3920
call fcn.10057600
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.10079c70
add esp, 4
mov edx, dword [ebp - 0x28]
push edx
call fcn.10079c70
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x40]
xor ecx, ebp
call fcn.10079a05
mov esp, ebp
pop ebp
ret