Function at 0x1007b23c
Capabilities:
Create directory
Get common file path
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x5b0
mov esi, esp
mov eax, dword [0x100c51b8]
xor eax, ebp
mov dword [esi + 0x5a8], eax
lea eax, [ebp + 8]
mov dword [esi + 0x8c], eax
lea ecx, [esi + 0xc0]
mov dword [esi + 0x90], ecx
mov edx, dword [esi + 0x90]
xor edx, edx
mov dword [ecx], edx
lea edi, [esi + 0xbc]
mov dword [esi + 0x94], edi
mov ecx, dword [esi + 0x94]
mov dword [edi], edx
lea edi, [esi + 0xb8]
mov dword [esi + 0x98], edi
mov ecx, dword [esi + 0x98]
mov dword [edi], edx
lea edi, [esi + 0xcc]
mov dword [esi + 0x9c], edi
mov ecx, dword [esi + 0x9c]
mov dword [edi], edx
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov edi, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
lea eax, [ebx + 8]
mov dword [esi + 0x400], eax
push dword [esi + 0x400]
call fcn.1005c524
add esp, 4
mov dword [esi + 0xfc], eax
mov eax, 0x9e3bc16f
cmp eax, 0xeaba07a8
je 0x1007b351
cmp eax, 0xbc174281
je 0x1007b315
cmp eax, 0x9e3bc16f
jne 0x1007b2ea
cmp dword [esi + 0xfc], 0
mov eax, 0xbc174281
mov ecx, 0xeaba07a8
cmove eax, ecx
jmp 0x1007b2ea
mov eax, dword [esi + 0xfc]
mov dword [eax], 0x77a526c8
mov eax, dword [esi + 0xfc]
mov dword [eax + 4], ebx
mov eax, dword [esi + 0xfc]
add eax, 8
push ebx
push edi
push eax
call fcn.1008ba80
add esp, 0xc
mov eax, dword [esi + 0x400]
mov dword [esi + 0xc0], eax
mov eax, 0xeaba07a8
jmp 0x1007b2ea
lea eax, [esi + 0xfc]
mov eax, dword [eax]
mov dword [esi + 0x78], eax
push eax
mov edi, esp
mov dword [edi], 0x76eacde5
push eax
mov dword [esi + 0x2c], esp
push eax
mov dword [esi + 0x28], esp
mov eax, 0x76eacde5
mov dword [esi + 0x88], edi
cmp eax, 0xdef4388d
jg 0x1007b3d5
cmp eax, 0xcd1c3a30
jg 0x1007b40a
cmp eax, 0x9daef4fa
je 0x1007b460
cmp eax, 0xc703c653
jne 0x1007cd39
xor ebx, ebx
push ebx
lea eax, [esi + 0xb8]
push eax
push dword [esi + 0xbc]
push dword [esi + 0x3c]
push dword [esi + 0x7c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [esi + 0x7c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], 0xdef4388e
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], ebx
jmp 0x1007b451
cmp eax, 0x3aaab125
jle 0x1007b434
cmp eax, 0x3aaab126
je 0x1007b54a
cmp eax, 0x76eacde5
jne 0x1007cd39
cmp dword [esi + 0x78], 0
mov eax, 0x9daef4fa
mov ecx, 0x3aaab126
cmove eax, ecx
mov dword [edi], eax
jmp 0x1007b378
cmp eax, 0xcd1c3a31
je 0x1007b56c
cmp eax, 0xdd7ee5de
jne 0x1007cd39
mov dword [edi], 0xdef4388e
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], 2
jmp 0x1007b451
cmp eax, 0xe62365d7
jne 0x1007cd32
mov dword [edi], 0xdef4388e
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], 3
mov ecx, dword [esi + 0x28]
mov dword [ecx], eax
mov eax, 0xdef4388e
jmp 0x1007b378
mov edi, dword [esi + 0xc0]
mov eax, dword [esi + 0x78]
mov dword [esi + 0xc], eax
xorps xmm0, xmm0
movaps xmmword [esi + 0x400], xmm0
lea ebx, [esi + 0xfc]
mov dword [esi + 0x300], ebx
mov eax, dword [esi + 0x300]
mov ecx, 0x100c64d0
push 0x1007ce65
call fcn.1000a868
xor eax, eax
mov dword [esi + 0xfc], eax
mov dword [esi + 0x10c], eax
mov dword [esi + 0x110], eax
mov ecx, ebx
push 0x100c6504
call fcn.10007eb6
mov eax, 0xb6defb31
cmp eax, 0x5a10690e
jg 0x1007b4d6
cmp eax, 0xb6defb31
je 0x1007b50d
cmp eax, 0x25e7fd74
jne 0x1007b4bc
jmp 0x1007b71b
cmp eax, 0x5a10690f
je 0x1007b523
cmp eax, 0x60e41d27
jne 0x1007b4bc
lea ecx, [esi + 0xfc]
call fcn.10007bca
push eax
push 0x100be0ed
push 0x10
lea eax, [esi + 0x400]
push eax
call fcn.10009906
add esp, 0x10
mov eax, 0x25e7fd74
jmp 0x1007b4bc
cmp dword [esi + 0x10c], 0
mov eax, 0x60e41d27
mov ecx, 0x5a10690f
cmove eax, ecx
jmp 0x1007b4bc
push 0
push 0x76787003
push str._lld
push 0x10
lea eax, [esi + 0x400]
push eax
call fcn.10009906
add esp, 0x14
mov eax, 0x25e7fd74
jmp 0x1007b4bc
mov dword [edi], 0xdef4388e
mov eax, dword [esi + 0x2c]
mov dword [eax], 1
mov eax, dword [esi + 0x28]
mov dword [eax], 0
mov eax, 0xdef4388e
jmp 0x1007b378
mov dword [esi + 0xb4], esp
push eax
sub esp, 0x18
mov ebx, esp
mov eax, dword [esi + 0x8c]
xor ecx, ecx
mov dword [ebx], ecx
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x14], ecx
mov ecx, ebx
push eax
call fcn.10007eb6
mov dword [esi + 0xac], esp
lea eax, [esi + 0xcc]
mov dword [ebx + 0x18], eax
sub esp, 0x28
mov edi, esp
lea ecx, [edi + 4]
mov dword [esi + 0xc], ecx
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
push ebx
call fcn.10007eb6
mov dword [esi + 0x74], esp
mov dword [esi + 0xb0], ebx
mov eax, dword [ebx + 0x18]
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x80], eax
lea eax, [edi + 0x1c]
mov dword [esi + 0xa0], eax
lea eax, [edi + 0x20]
mov dword [esi + 0xa4], eax
mov dword [edi + 0x1c], 0x40000000
mov dword [edi + 0x20], 1
mov dword [edi + 0x24], 2
mov dword [esi + 0x70], edi
lea eax, [edi + 0x24]
mov dword [esi + 0xa8], eax
sub esp, 0x20
mov ebx, esp
lea edi, [ebx + 4]
mov eax, dword [esi + 0x80]
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x18], ecx
mov ecx, edi
push eax
call fcn.10007eb6
lea eax, [esi + 0xe4]
mov dword [ebx], eax
xor eax, eax
mov byte [ebx + 0x1c], al
mov dword [esi + 0xc], ebx
mov dword [esi + 0x40], ebx
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 0x10], eax
mov dword [esi + 0x44], edi
mov eax, dword [esi + 0x10]
mov ecx, 0
mov dword [eax], ecx
mov dword [eax + 0x10], ecx
mov ecx, 0
mov dword [eax + 0x14], 0xf
mov byte [eax], cl
lea eax, [esi + 0x500]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
mov byte [esi + 0x400], 1
mov byte [esi + 0x401], 0xb
mov byte [esi + 0x402], 0x58
mov byte [esi + 0x403], 0x53
mov al, 0x63
mov byte [esi + 0x404], al
mov byte [esi + 0x405], 0x6f
mov byte [esi + 0x406], al
mov byte [esi + 0x407], 0x66
mov byte [esi + 0x408], 0x6c
mov byte [esi + 0x409], 0x79
mov byte [esi + 0x40a], 0x50
mov byte [esi + 0x40b], 0x7e
mov byte [esi + 0x40c], 0x67
mov byte [esi + 0x40d], 0x64
mov byte [esi + 0x40e], 0x6d
mov byte [esi + 0x40f], 0x62
lea eax, [esi + 0x412]
mov dword [esi + 0x300], eax
mov ecx, 0x9e4cd24
lea eax, [esi + 0x410]
cmp ecx, 0x390de2e8
je 0x1007b76b
cmp ecx, 0x9e4cd24
jne 0x1007b6f2
mov byte [eax], 0
inc eax
cmp eax, dword [esi + 0x300]
mov ecx, 0x9e4cd24
mov edx, 0x390de2e8
cmove ecx, edx
jmp 0x1007b6f2
lea ecx, [esi + 0xfc]
call fcn.100087f0
mov eax, dword [esi + 0x300]
lea eax, [esi + 0xbc]
push eax
push edi
push dword [esi + 0xc]
push 0x10
lea eax, [esi + 0x400]
push eax
push eax
push 1
call fcn.10060489
add esp, 0x1c
mov dword [esi + 0x3c], eax
cmp dword [esi + 0xbc], 0
mov eax, 0xcd1c3a31
mov ecx, 0xe62365d7
cmovle eax, ecx
cmp dword [esi + 0x3c], 0
jmp 0x1007cd22
lea eax, [esi + 0x400]
mov dword [esi + 0x200], eax
mov eax, dword [esi + 0x200]
mov al, byte [eax]
mov byte [esi + 0x578], al
mov eax, 0x51a51d83
cmp eax, 0x176dc90d
jg 0x1007b7f8
cmp eax, 0xa3c7258e
je 0x1007b82a
cmp eax, 0xa921f8a0
je 0x1007b892
cmp eax, 0xcd720261
jne 0x1007b78a
mov eax, dword [esi + 0x590]
mov cl, byte [esi + eax + 0x402]
mov edx, dword [esi + 0x590]
mov al, byte [esi + 0x401]
movzx edi, al
mov eax, 0xfe
sub eax, edx
inc edx
and eax, edi
not edi
and edi, edx
or eax, edi
xor al, cl
xor al, 0xe
mov ecx, dword [esi + 0x590]
mov byte [esi + ecx + 0x402], al
inc dword [esi + 0x590]
mov eax, 0x176dc90e
jmp 0x1007b78a
cmp eax, 0x176dc90e
je 0x1007b850
cmp eax, 0x7ad28e43
je 0x1007b86b
cmp eax, 0x51a51d83
jne 0x1007b78a
test byte [esi + 0x578], 1
mov eax, 0xa3c7258e
mov ecx, 0xa921f8a0
cmove eax, ecx
jmp 0x1007b78a
lea eax, [esi + 0x590]
mov dword [esi + 0x300], eax
mov eax, dword [esi + 0x300]
mov dword [esi + 0x590], 0
mov eax, 0x176dc90e
jmp 0x1007b78a
mov eax, dword [esi + 0x590]
cmp eax, 0xe
mov eax, 0x7ad28e43
mov ecx, 0xcd720261
cmovb eax, ecx
jmp 0x1007b78a
mov eax, dword [esi + 0x300]
mov byte [esi + 0x410], 0
mov byte [esi + 0x411], 0
mov eax, dword [esi + 0x200]
mov byte [eax], 0
mov eax, 0xa921f8a0
jmp 0x1007b78a
xor ebx, ebx
mov dword [esi + 0x500], ebx
mov dword [esi + 0x510], ebx
mov dword [esi + 0x514], 0xf
mov byte [esi + 0x500], 0
lea edi, [esi + 0x402]
push edi
call fcn.1009ee80
add esp, 4
lea ecx, [esi + 0x500]
push eax
push edi
call fcn.10007b00
lea ecx, [esi + 0xfc]
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x20], ecx
push 0x104
push ebx
push dword [esi + 0x20]
call fcn.1008c000
add esp, 0xc
xor eax, eax
mov ecx, dword [esi + 0xc]
cmp byte [ecx + 0x1c], 0
sete al
lea eax, [eax + eax*8 + 0x1a]
push 1
push eax
push dword [esi + 0x20]
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov dword [esi + 0x84], eax
mov eax, 0xb5396884
cmp eax, 0x1185af0e
jle 0x1007b93b
cmp eax, 0x373bfcd7
jg 0x1007b967
cmp eax, 0x1185af0f
je 0x1007ba41
cmp eax, 0x293ada40
je 0x1007c0bf
jmp 0x1007b915
cmp eax, 0xd5e5fb0a
jle 0x1007ba1d
cmp eax, 0xd5e5fb0b
je 0x1007ba5c
cmp eax, 0xdfcc82b
jne 0x1007b915
mov ecx, dword [esi + 0x10]
call fcn.100087f0
mov eax, 0xaddb4c97
jmp 0x1007b915
cmp eax, 0x373bfcd8
je 0x1007c0c9
cmp eax, 0x59daf0b3
jne 0x1007b915
mov edi, dword [esi + 0x20]
xor eax, eax
mov dword [esi + 0x400], eax
mov dword [esi + 0x410], eax
mov dword [esi + 0x414], 0xf
mov byte [esi + 0x400], 0
push edi
call fcn.1009ee80
add esp, 4
lea ebx, [esi + 0x400]
mov ecx, ebx
push eax
push edi
call fcn.10007b00
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0x410]
mov dword [esi + 0xc], eax
mov ecx, ebx
call fcn.10007bca
mov ecx, edi
push dword [esi + 0xc]
push eax
call fcn.10008e94
mov ecx, ebx
call fcn.100087f0
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x510]
lea ecx, [esi + 0x500]
call fcn.10007bca
mov ecx, edi
push ebx
push eax
call fcn.10008e94
mov ecx, dword [esi + 0x10]
call fcn.10007bca
xor ecx, ecx
push ecx
push eax
call fcn.1009a0d5
add esp, 8
test eax, eax
mov eax, 0xd5e5fb0b
mov ecx, 0x293ada40
cmove eax, ecx
jmp 0x1007b915
cmp eax, 0xb5396884
jne 0x1007c112
cmp dword [esi + 0x84], 0
mov eax, 0x59daf0b3
mov ecx, 0x1185af0f
cmove eax, ecx
jmp 0x1007b915
mov eax, dword [esi + 0x4c]
lea ecx, [esi + 0x500]
call fcn.100087f0
mov eax, dword [esi + 0x48]
mov eax, 0xaddb4c97
jmp 0x1007b915
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
lea eax, [esi + 0xc9]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
lea eax, [esi + 0x400]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x54]
lea eax, [esi + 0x300]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
lea eax, [esi + 0x200]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x5c]
mov eax, 0x6b3da837
mov dword [esi + 0xc], ecx
cmp eax, 0xf1d28b7d
jle 0x1007bb1e
cmp eax, 0x67faef0c
jg 0x1007bb84
cmp eax, 0x28d5f651
jle 0x1007bbeb
cmp eax, 0x28d5f652
je 0x1007bcb3
cmp eax, 0x510bea7a
je 0x1007bca9
cmp eax, 0x6426c0cd
jne 0x1007ba9a
lea ecx, [esi + 0x590]
mov dword [esi + 0x60], ecx
mov eax, dword [esi + 0x60]
xor eax, eax
mov dword [esi + 0x590], eax
mov dword [esi + 0x5a0], eax
mov dword [esi + 0x5a4], eax
mov ebx, dword [esi + 0x30]
push ebx
call fcn.10007eb6
mov edi, dword [ebx + 0x10]
mov ecx, ebx
call fcn.10007bca
cmp byte [edi + eax - 1], 0x5c
mov eax, 0x6e98a490
mov ecx, 0x84634a4f
cmove eax, ecx
jmp 0x1007ba9a
cmp eax, 0xb4581697
jg 0x1007bbb5
cmp eax, 0x92ffa589
jle 0x1007bc31
cmp eax, 0x92ffa58a
je 0x1007bce3
cmp eax, 0x9aaf1636
je 0x1007bd03
cmp eax, 0xa910b0d9
jne 0x1007ba9a
lea ecx, [esi + 0x530]
push 0
push 0x100be360
call fcn.1007cdfc
mov dword [esi + 0x1c], eax
mov eax, 0x28d5f652
mov dword [esi + 0x34], 0
mov cl, byte [esi + 0xc8]
mov dword [esi + 0xc], ecx
jmp 0x1007ba9a
cmp eax, 0x6e98a48f
jle 0x1007bc64
cmp eax, 0x6e98a490
je 0x1007bd2c
cmp eax, 0x707c8f2e
je 0x1007bd8a
cmp eax, 0x74d9b284
je 0x1007bca9
jmp 0x1007ba9a
cmp eax, 0xbf051812
jle 0x1007bc93
cmp eax, 0xbf051813
je 0x1007bed3
cmp eax, 0xd88e9a12
je 0x1007bef3
cmp eax, 0xe04ff44f
jne 0x1007ba9a
mov eax, 0x510bea7a
jmp 0x1007ba9a
cmp eax, 0xf1d28b7e
je 0x1007bc27
cmp eax, 0xd175d32
jne 0x1007c0a8
lea ecx, [esi + 0x530]
call fcn.100087f0
mov eax, dword [esi + 0x68]
lea ecx, [esi + 0x560]
call fcn.100087f0
mov eax, dword [esi + 0x64]
lea ecx, [esi + 0x590]
call fcn.100087f0
mov eax, dword [esi + 0x60]
mov eax, 0x1a4032b7
jmp 0x1007ba9a
cmp eax, 0x84634a4f
je 0x1007bf19
cmp eax, 0x8a9390f6
jne 0x1007ba9a
mov eax, 0x28d5f652
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0xc], 0
xor ecx, ecx
inc ecx
mov dword [esi + 0x34], ecx
jmp 0x1007ba9a
cmp eax, 0x67faef0d
je 0x1007c070
cmp eax, 0x6b3da837
jne 0x1007ba9a
mov eax, dword [esi + 0x30]
cmp dword [eax + 0x10], 0
mov eax, 0x6426c0cd
mov ecx, 0xf1d28b7e
cmove eax, ecx
jmp 0x1007ba9a
cmp eax, 0xb4581698
je 0x1007c08f
cmp eax, 0xb77f803d
jne 0x1007ba9a
mov eax, 0xd175d32
jmp 0x1007ba9a
lea ecx, [esi + 0x518]
call fcn.100087f0
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x34], 0
mov eax, 0x510bea7a
mov ecx, 0x9aaf1636
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov byte [esi + 0x17], cl
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x38], ecx
jmp 0x1007ba9a
lea ecx, [esi + 0x560]
call fcn.10007bca
push eax
call fcn.1009b6c8
add esp, 4
test eax, eax
mov eax, 0x8a9390f6
jmp 0x1007bec6
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov al, byte [esi + 0x17]
and al, 1
mov byte [esi + 0xc8], al
mov eax, dword [esi + 0x18]
cmp eax, 0xffffffff
mov eax, 0x707c8f2e
mov ecx, 0xe04ff44f
cmove eax, ecx
jmp 0x1007ba9a
xor eax, eax
mov dword [esi + 0x578], eax
mov dword [esi + 0x588], eax
mov dword [esi + 0x58c], 0xf
mov byte [esi + 0x578], 0
lea ebx, [esi + 0x578]
mov ecx, ebx
push 1
push 0x100be360
call fcn.10007b00
mov edi, dword [esi + 0x588]
mov ecx, ebx
call fcn.10007bca
lea ecx, [esi + 0x590]
push edi
push eax
call fcn.10008e94
mov ecx, ebx
call fcn.100087f0
mov eax, 0x84634a4f
jmp 0x1007ba9a
lea ecx, [esi + 0x518]
mov dword [esi + 0x6c], ecx
mov eax, dword [esi + 0x6c]
mov eax, dword [esi + 0x18]
xor edx, edx
mov dword [esi + 0x518], edx
mov dword [esi + 0x528], edx
mov edi, 0xf
mov dword [esi + 0x52c], edi
mov byte [esi + 0x518], dl
push eax
push edx
lea ebx, [esi + 0x530]
push ebx
call fcn.10009162
mov edi, dword [esi + 0x18]
inc edi
mov ecx, ebx
xor eax, eax
push eax
call fcn.100091a0
mov ebx, dword [esi + 0x540]
cmp ebx, edi
cmovb edi, ebx
lea ecx, [esi + 0x530]
call fcn.10007c1e
sub ebx, edi
mov dword [esi + 0x540], ebx
inc ebx
add edi, eax
push ebx
push edi
push eax
call fcn.1008ba80
add esp, 0xc
xor eax, eax
mov dword [esi + 0x548], eax
mov dword [esi + 0x558], eax
mov ecx, 0xf
mov dword [esi + 0x55c], ecx
mov byte [esi + 0x548], al
lea ebx, [esi + 0x548]
mov ecx, ebx
push 1
push 0x100be360
call fcn.10007b00
mov edi, dword [esi + 0x528]
lea ecx, [esi + 0x518]
call fcn.10007bca
mov ecx, ebx
push edi
push eax
xor eax, eax
push eax
call fcn.10009486
movups xmm0, xmmword [eax]
movups xmmword [esi + 0x578], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x588], xmm0
xor ecx, ecx
mov dword [eax + 0x10], ecx
mov edx, 0xf
mov dword [eax + 0x14], edx
mov byte [eax], cl
mov edi, dword [esi + 0x588]
lea ecx, [esi + 0x578]
call fcn.10007bca
lea ebx, [esi + 0x560]
mov ecx, ebx
push edi
push eax
call fcn.10008e94
lea ecx, [esi + 0x578]
call fcn.100087f0
lea ecx, [esi + 0x548]
call fcn.100087f0
mov ecx, ebx
call fcn.10007bca
xor ecx, ecx
push ecx
push eax
call fcn.1009a0d5
add esp, 8
test eax, eax
mov eax, 0x92ffa58a
mov ecx, 0xa910b0d9
cmove eax, ecx
jmp 0x1007ba9a
lea ecx, [esi + 0x530]
call fcn.10007c1e
cmp byte [eax], 0x5c
mov eax, 0x67faef0d
mov ecx, 0xd88e9a12
cmove eax, ecx
jmp 0x1007ba9a
lea edi, [esi + 0x530]
mov ecx, edi
call fcn.10007c1e
mov ecx, edi
push eax
lea eax, [esi + 0x578]
push eax
call fcn.1007cda4
mov eax, 0x67faef0d
jmp 0x1007ba9a
lea ecx, [esi + 0x590]
call fcn.10007bca
mov edx, 0x100
push edx
lea ecx, [esi + 0x200]
push ecx
push edx
lea ecx, [esi + 0x300]
push ecx
push edx
lea edi, [esi + 0x400]
push edi
push 3
lea edi, [esi + 0xc9]
push edi
push eax
call fcn.1009bd7b
add esp, 0x24
lea eax, [esi + 0x560]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x64]
xor ebx, ebx
mov dword [esi + 0x578], ebx
mov dword [esi + 0x588], ebx
mov eax, 0xf
mov dword [esi + 0x58c], eax
mov byte [esi + 0x578], bl
lea ecx, [esi + 0x578]
push 1
push 0x100be360
call fcn.10007b00
mov dword [esi + 0x548], ebx
mov dword [esi + 0x558], ebx
mov eax, 0xf
mov dword [esi + 0x55c], eax
mov byte [esi + 0x548], bl
push edi
call fcn.1009ee80
add esp, 4
lea edi, [esi + 0x548]
mov ecx, edi
push eax
lea eax, [esi + 0xc9]
push eax
call fcn.10007b00
sub esp, 0xc
mov al, byte [esi + 0xc4]
mov byte [esp], al
lea eax, [esi + 0x578]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
lea ecx, [esi + 0x560]
call fcn.1000fe0c
mov ecx, edi
call fcn.100087f0
lea ecx, [esi + 0x578]
call fcn.100087f0
lea edi, [esi + 0x530]
mov dword [esi + 0x68], edi
mov eax, dword [esi + 0x68]
mov dword [esi + 0x530], ebx
mov dword [esi + 0x540], ebx
mov eax, 0xf
mov dword [esi + 0x544], eax
mov byte [esi + 0x530], bl
lea edi, [esi + 0x400]
push edi
call fcn.1009ee80
add esp, 4
lea ecx, [esi + 0x530]
push eax
push edi
call fcn.10007b00
lea ecx, [esi + 0x560]
call fcn.10007bca
push ebx
push eax
call fcn.1009a0d5
add esp, 8
test eax, eax
mov eax, 0xb77f803d
mov ecx, 0xb4581698
cmove eax, ecx
jmp 0x1007ba9a
lea ecx, [esi + 0x530]
push 0
push 0x100be360
call fcn.1007cdfc
mov dword [esi + 0x38], eax
mov eax, 0x9aaf1636
jmp 0x1007ba9a
cmp dword [esi + 0x540], 0
mov eax, 0xbf051813
mov ecx, 0x74d9b284
cmove eax, ecx
jmp 0x1007ba9a
cmp eax, 0x1a4032b7
jne 0x1007ba9a
mov eax, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov eax, dword [esi + 0x54]
mov eax, dword [esi + 0x50]
mov eax, 0x373bfcd8
jmp 0x1007b915
push dword [esi + 0x44]
push 0x100be360
lea eax, [esi + 0x400]
push eax
call fcn.1000fd47
add esp, 0xc
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x410]
lea ecx, [esi + 0x400]
call fcn.10007bca
mov ecx, edi
push ebx
push eax
call fcn.10008e94
lea ecx, [esi + 0x400]
call fcn.100087f0
mov eax, 0x1185af0f
jmp 0x1007b915
cmp eax, 0xaddb4c97
jne 0x1007b915
mov ecx, dword [esi + 0x44]
call fcn.100087f0
mov eax, dword [esi + 0x40]
mov esp, dword [esi + 0x74]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax]
lea edi, [esi + 0xe4]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
mov eax, dword [esi + 0xa8]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xa4]
mov ebx, dword [eax]
mov eax, dword [esi + 0xa0]
mov edi, dword [eax]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax]
call fcn.10007bca
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push ebx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esi + 0xc4], eax
mov edi, 0xf9bac8fb
cmp edi, 0xb28092a5
je 0x1007c1be
cmp edi, 0xd6d82522
je 0x1007cced
cmp edi, 0xf9bac8fb
jne 0x1007c184
mov eax, dword [esi + 0xc4]
cmp eax, 0xffffffff
mov edi, 0xd6d82522
mov eax, 0xb28092a5
cmove edi, eax
mov ebx, dword [esi + 0xc4]
jmp 0x1007c184
mov dword [esi + 0x74], esp
push eax
sub esp, 0x1c
mov ebx, esp
lea edi, [ebx + 4]
mov eax, dword [esi + 0x80]
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x18], ecx
mov ecx, edi
push eax
call fcn.10007eb6
lea eax, [esi + 0xe4]
mov dword [ebx], eax
mov cl, 1
mov byte [ebx + 0x1c], cl
mov dword [esi + 0xc], ebx
mov dword [esi + 0x40], ebx
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 0x10], eax
mov dword [esi + 0x44], edi
mov eax, dword [esi + 0x10]
mov edx, 0
mov dword [eax], edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esi + 0x500]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
mov byte [esi + 0x400], cl
mov byte [esi + 0x401], 0xb
mov byte [esi + 0x402], 0x58
mov byte [esi + 0x403], 0x53
mov al, 0x63
mov byte [esi + 0x404], al
mov byte [esi + 0x405], 0x6f
mov byte [esi + 0x406], al
mov byte [esi + 0x407], 0x66
mov byte [esi + 0x408], 0x6c
mov byte [esi + 0x409], 0x79
mov byte [esi + 0x40a], 0x50
mov byte [esi + 0x40b], 0x7e
mov byte [esi + 0x40c], 0x67
mov byte [esi + 0x40d], 0x64
mov byte [esi + 0x40e], 0x6d
mov byte [esi + 0x40f], 0x62
lea eax, [esi + 0x412]
mov dword [esi + 0x300], eax
mov ecx, 0x9e4cd24
lea eax, [esi + 0x410]
cmp ecx, 0x390de2e8
je 0x1007c2d3
cmp ecx, 0x9e4cd24
jne 0x1007c2aa
mov byte [eax], 0
inc eax
cmp eax, dword [esi + 0x300]
mov ecx, 0x9e4cd24
mov edx, 0x390de2e8
cmove ecx, edx
jmp 0x1007c2aa
lea eax, [esi + 0x400]
mov dword [esi + 0x200], eax
mov eax, dword [esi + 0x200]
mov al, byte [eax]
mov byte [esi + 0x578], al
mov eax, 0x51a51d83
cmp eax, 0x176dc90d
jg 0x1007c360
cmp eax, 0xa3c7258e
je 0x1007c392
cmp eax, 0xa921f8a0
je 0x1007c3fa
cmp eax, 0xcd720261
jne 0x1007c2f2
mov eax, dword [esi + 0x590]
mov cl, byte [esi + eax + 0x402]
mov edx, dword [esi + 0x590]
mov al, byte [esi + 0x401]
movzx edi, al
mov eax, 0xfe
sub eax, edx
inc edx
and eax, edi
not edi
and edi, edx
or eax, edi
xor al, cl
xor al, 0xe
mov ecx, dword [esi + 0x590]
mov byte [esi + ecx + 0x402], al
inc dword [esi + 0x590]
mov eax, 0x176dc90e
jmp 0x1007c2f2
cmp eax, 0x176dc90e
je 0x1007c3b8
cmp eax, 0x7ad28e43
je 0x1007c3d3
cmp eax, 0x51a51d83
jne 0x1007c2f2
test byte [esi + 0x578], 1
mov eax, 0xa3c7258e
mov ecx, 0xa921f8a0
cmove eax, ecx
jmp 0x1007c2f2
lea eax, [esi + 0x590]
mov dword [esi + 0x300], eax
mov eax, dword [esi + 0x300]
mov dword [esi + 0x590], 0
mov eax, 0x176dc90e
jmp 0x1007c2f2
mov eax, dword [esi + 0x590]
cmp eax, 0xe
mov eax, 0x7ad28e43
mov ecx, 0xcd720261
cmovb eax, ecx
jmp 0x1007c2f2
mov eax, dword [esi + 0x300]
mov byte [esi + 0x410], 0
mov byte [esi + 0x411], 0
mov eax, dword [esi + 0x200]
mov byte [eax], 0
mov eax, 0xa921f8a0
jmp 0x1007c2f2
xor ebx, ebx
mov dword [esi + 0x500], ebx
mov dword [esi + 0x510], ebx
mov dword [esi + 0x514], 0xf
mov byte [esi + 0x500], 0
lea edi, [esi + 0x402]
push edi
call fcn.1009ee80
add esp, 4
lea ecx, [esi + 0x500]
push eax
push edi
call fcn.10007b00
lea ecx, [esi + 0xfc]
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x20], ecx
push 0x104
push ebx
push dword [esi + 0x20]
call fcn.1008c000
add esp, 0xc
xor eax, eax
mov ecx, dword [esi + 0xc]
cmp byte [ecx + 0x1c], 0
sete al
lea eax, [eax + eax*8 + 0x1a]
push 1
push eax
push dword [esi + 0x20]
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov dword [esi + 0x84], eax
mov eax, 0xb5396884
cmp eax, 0x1185af0e
jle 0x1007c4a3
cmp eax, 0x373bfcd7
jg 0x1007c4cf
cmp eax, 0x1185af0f
je 0x1007c5aa
cmp eax, 0x293ada40
je 0x1007cc22
jmp 0x1007c47d
cmp eax, 0xd5e5fb0a
jle 0x1007c586
cmp eax, 0xd5e5fb0b
je 0x1007c5c5
cmp eax, 0xdfcc82b
jne 0x1007c47d
mov ecx, dword [esi + 0x10]
call fcn.100087f0
mov eax, 0xaddb4c97
jmp 0x1007c47d
cmp eax, 0x373bfcd8
je 0x1007cc2c
cmp eax, 0x59daf0b3
jne 0x1007c47d
mov edi, dword [esi + 0x20]
xor eax, eax
mov dword [esi + 0x400], eax
mov dword [esi + 0x410], eax
mov dword [esi + 0x414], 0xf
mov byte [esi + 0x400], 0
push edi
call fcn.1009ee80
add esp, 4
lea ecx, [esi + 0x400]
push eax
push edi
call fcn.10007b00
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x410]
lea ecx, [esi + 0x400]
call fcn.10007bca
mov ecx, edi
push ebx
push eax
call fcn.10008e94
lea ecx, [esi + 0x400]
call fcn.100087f0
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x510]
lea ecx, [esi + 0x500]
call fcn.10007bca
mov ecx, edi
push ebx
push eax
call fcn.10008e94
mov ecx, dword [esi + 0x10]
call fcn.10007bca
xor ecx, ecx
push ecx
push eax
call fcn.1009a0d5
add esp, 8
test eax, eax
mov eax, 0xd5e5fb0b
mov ecx, 0x293ada40
cmove eax, ecx
jmp 0x1007c47d
cmp eax, 0xb5396884
jne 0x1007cc75
cmp dword [esi + 0x84], 0
mov eax, 0x59daf0b3
mov ecx, 0x1185af0f
cmove eax, ecx
jmp 0x1007c47d
mov eax, dword [esi + 0x4c]
lea ecx, [esi + 0x500]
call fcn.100087f0
mov eax, dword [esi + 0x48]
mov eax, 0xaddb4c97
jmp 0x1007c47d
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
lea eax, [esi + 0xc9]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
lea eax, [esi + 0x400]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x54]
lea eax, [esi + 0x300]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
lea eax, [esi + 0x200]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x5c]
mov eax, 0x6b3da837
mov dword [esi + 0xc], ecx
cmp eax, 0xf1d28b7d
jle 0x1007c687
cmp eax, 0x67faef0c
jg 0x1007c6ea
cmp eax, 0x28d5f651
jle 0x1007c751
cmp eax, 0x28d5f652
je 0x1007c819
cmp eax, 0x510bea7a
je 0x1007c80f
cmp eax, 0x6426c0cd
jne 0x1007c603
lea ecx, [esi + 0x590]
mov dword [esi + 0x60], ecx
mov eax, dword [esi + 0x60]
xor eax, eax
mov dword [esi + 0x590], eax
mov dword [esi + 0x5a0], eax
mov dword [esi + 0x5a4], eax
mov edi, dword [esi + 0x30]
push edi
call fcn.10007eb6
mov ebx, dword [edi + 0x10]
mov ecx, edi
call fcn.10007bca
cmp byte [ebx + eax - 1], 0x5c
mov eax, 0x6e98a490
mov ecx, 0x84634a4f
cmove eax, ecx
jmp 0x1007c603
cmp eax, 0xb4581697
jg 0x1007c71b
cmp eax, 0x92ffa589
jle 0x1007c797
cmp eax, 0x92ffa58a
je 0x1007c849
cmp eax, 0x9aaf1636
je 0x1007c869
cmp eax, 0xa910b0d9
jne 0x1007c603
lea ecx, [esi + 0x530]
push 0
push 0x100be360
call fcn.1007cdfc
mov dword [esi + 0x1c], eax
mov eax, 0x28d5f652
mov dword [esi + 0x34], 0
mov cl, byte [esi + 0x27]
mov dword [esi + 0xc], ecx
jmp 0x1007c603
cmp eax, 0x6e98a48f
jle 0x1007c7ca
cmp eax, 0x6e98a490
je 0x1007c88f
cmp eax, 0x707c8f2e
je 0x1007c8ed
cmp eax, 0x74d9b284
je 0x1007c80f
jmp 0x1007c603
cmp eax, 0xbf051812
jle 0x1007c7f9
cmp eax, 0xbf051813
je 0x1007ca36
cmp eax, 0xd88e9a12
je 0x1007ca56
cmp eax, 0xe04ff44f
jne 0x1007c603
mov eax, 0x510bea7a
jmp 0x1007c603
cmp eax, 0xf1d28b7e
je 0x1007c78d
cmp eax, 0xd175d32
jne 0x1007cc0b
lea ecx, [esi + 0x530]
call fcn.100087f0
mov eax, dword [esi + 0x68]
lea ecx, [esi + 0x560]
call fcn.100087f0
mov eax, dword [esi + 0x64]
lea ecx, [esi + 0x590]
call fcn.100087f0
mov eax, dword [esi + 0x60]
mov eax, 0x1a4032b7
jmp 0x1007c603
cmp eax, 0x84634a4f
je 0x1007ca7c
cmp eax, 0x8a9390f6
jne 0x1007c603
mov eax, 0x28d5f652
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0xc], 0
xor ecx, ecx
inc ecx
mov dword [esi + 0x34], ecx
jmp 0x1007c603
cmp eax, 0x67faef0d
je 0x1007cbd3
cmp eax, 0x6b3da837
jne 0x1007c603
mov eax, dword [esi + 0x30]
cmp dword [eax + 0x10], 0
mov eax, 0x6426c0cd
mov ecx, 0xf1d28b7e
cmove eax, ecx
jmp 0x1007c603
cmp eax, 0xb4581698
je 0x1007cbf2
cmp eax, 0xb77f803d
jne 0x1007c603
mov eax, 0xd175d32
jmp 0x1007c603
lea ecx, [esi + 0x518]
call fcn.100087f0
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x34], 0
mov eax, 0x510bea7a
mov ecx, 0x9aaf1636
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov byte [esi + 0x17], cl
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x38], ecx
jmp 0x1007c603
lea ecx, [esi + 0x560]
call fcn.10007bca
push eax
call fcn.1009b6c8
add esp, 4
test eax, eax
mov eax, 0x8a9390f6
jmp 0x1007ca29
mov eax, dword [esi + 0x38]
mov dword [esi + 0x18], eax
mov al, byte [esi + 0x17]
and al, 1
mov byte [esi + 0x27], al
mov eax, dword [esi + 0x18]
cmp eax, 0xffffffff
mov eax, 0x707c8f2e
mov ecx, 0xe04ff44f
cmove eax, ecx
jmp 0x1007c603
xor eax, eax
mov dword [esi + 0x578], eax
mov dword [esi + 0x588], eax
mov dword [esi + 0x58c], 0xf
mov byte [esi + 0x578], 0
lea edi, [esi + 0x578]
mov ecx, edi
push 1
push 0x100be360
call fcn.10007b00
mov ebx, dword [esi + 0x588]
mov ecx, edi
call fcn.10007bca
lea ecx, [esi + 0x590]
push ebx
push eax
call fcn.10008e94
mov ecx, edi
call fcn.100087f0
mov eax, 0x84634a4f
jmp 0x1007c603
lea ecx, [esi + 0x518]
mov dword [esi + 0x6c], ecx
mov eax, dword [esi + 0x6c]
mov eax, dword [esi + 0x18]
xor edx, edx
mov dword [esi + 0x518], edx
mov dword [esi + 0x528], edx
mov edi, 0xf
mov dword [esi + 0x52c], edi
mov byte [esi + 0x518], dl
push eax
push edx
lea edi, [esi + 0x530]
push edi
call fcn.10009162
mov ebx, dword [esi + 0x18]
inc ebx
mov ecx, edi
xor eax, eax
push eax
call fcn.100091a0
mov edi, dword [esi + 0x540]
cmp edi, ebx
cmovb ebx, edi
lea ecx, [esi + 0x530]
call fcn.10007c1e
sub edi, ebx
mov dword [esi + 0x540], edi
inc edi
add ebx, eax
push edi
push ebx
push eax
call fcn.1008ba80
add esp, 0xc
xor eax, eax
mov dword [esi + 0x548], eax
mov dword [esi + 0x558], eax
mov ecx, 0xf
mov dword [esi + 0x55c], ecx
mov byte [esi + 0x548], al
lea ebx, [esi + 0x548]
mov ecx, ebx
push 1
push 0x100be360
call fcn.10007b00
mov edi, dword [esi + 0x528]
lea ecx, [esi + 0x518]
call fcn.10007bca
mov ecx, ebx
push edi
push eax
xor eax, eax
push eax
call fcn.10009486
movups xmm0, xmmword [eax]
movups xmmword [esi + 0x578], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x588], xmm0
xor ecx, ecx
mov dword [eax + 0x10], ecx
mov edx, 0xf
mov dword [eax + 0x14], edx
mov byte [eax], cl
mov edi, dword [esi + 0x588]
lea ecx, [esi + 0x578]
call fcn.10007bca
lea ebx, [esi + 0x560]
mov ecx, ebx
push edi
push eax
call fcn.10008e94
lea ecx, [esi + 0x578]
call fcn.100087f0
lea ecx, [esi + 0x548]
call fcn.100087f0
mov ecx, ebx
call fcn.10007bca
xor ecx, ecx
push ecx
push eax
call fcn.1009a0d5
add esp, 8
test eax, eax
mov eax, 0x92ffa58a
mov ecx, 0xa910b0d9
cmove eax, ecx
jmp 0x1007c603
lea ecx, [esi + 0x530]
call fcn.10007c1e
cmp byte [eax], 0x5c
mov eax, 0x67faef0d
mov ecx, 0xd88e9a12
cmove eax, ecx
jmp 0x1007c603
lea edi, [esi + 0x530]
mov ecx, edi
call fcn.10007c1e
mov ecx, edi
push eax
lea eax, [esi + 0x578]
push eax
call fcn.1007cda4
mov eax, 0x67faef0d
jmp 0x1007c603
lea ecx, [esi + 0x590]
call fcn.10007bca
mov edx, 0x100
push edx
lea ecx, [esi + 0x200]
push ecx
push edx
lea ecx, [esi + 0x300]
push ecx
push edx
lea edi, [esi + 0x400]
push edi
push 3
lea edi, [esi + 0xc9]
push edi
push eax
call fcn.1009bd7b
add esp, 0x24
lea eax, [esi + 0x560]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x64]
xor ebx, ebx
mov dword [esi + 0x578], ebx
mov dword [esi + 0x588], ebx
mov eax, 0xf
mov dword [esi + 0x58c], eax
mov byte [esi + 0x578], bl
lea ecx, [esi + 0x578]
push 1
push 0x100be360
call fcn.10007b00
mov dword [esi + 0x548], ebx
mov dword [esi + 0x558], ebx
mov eax, 0xf
mov dword [esi + 0x55c], eax
mov byte [esi + 0x548], bl
push edi
call fcn.1009ee80
add esp, 4
lea edi, [esi + 0x548]
mov ecx, edi
push eax
lea eax, [esi + 0xc9]
push eax
call fcn.10007b00
sub esp, 0xc
mov al, byte [esi + 0xc8]
mov byte [esp], al
lea eax, [esi + 0x578]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
lea ecx, [esi + 0x560]
call fcn.1000fe0c
mov ecx, edi
call fcn.100087f0
lea ecx, [esi + 0x578]
call fcn.100087f0
lea edi, [esi + 0x530]
mov dword [esi + 0x68], edi
mov eax, dword [esi + 0x68]
mov dword [esi + 0x530], ebx
mov dword [esi + 0x540], ebx
mov eax, 0xf
mov dword [esi + 0x544], eax
mov byte [esi + 0x530], bl
lea edi, [esi + 0x400]
push edi
call fcn.1009ee80
add esp, 4
lea ecx, [esi + 0x530]
push eax
push edi
call fcn.10007b00
lea ecx, [esi + 0x560]
call fcn.10007bca
push ebx
push eax
call fcn.1009a0d5
add esp, 8
test eax, eax
mov eax, 0xb77f803d
mov ecx, 0xb4581698
cmove eax, ecx
jmp 0x1007c603
lea ecx, [esi + 0x530]
push 0
push 0x100be360
call fcn.1007cdfc
mov dword [esi + 0x38], eax
mov eax, 0x9aaf1636
jmp 0x1007c603
cmp dword [esi + 0x540], 0
mov eax, 0xbf051813
mov ecx, 0x74d9b284
cmove eax, ecx
jmp 0x1007c603
cmp eax, 0x1a4032b7
jne 0x1007c603
mov eax, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov eax, dword [esi + 0x54]
mov eax, dword [esi + 0x50]
mov eax, 0x373bfcd8
jmp 0x1007c47d
push dword [esi + 0x44]
push 0x100be360
lea eax, [esi + 0x400]
push eax
call fcn.1000fd47
add esp, 0xc
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x410]
lea ecx, [esi + 0x400]
call fcn.10007bca
mov ecx, edi
push ebx
push eax
call fcn.10008e94
lea ecx, [esi + 0x400]
call fcn.100087f0
mov eax, 0x1185af0f
jmp 0x1007c47d
cmp eax, 0xaddb4c97
jne 0x1007c47d
mov ecx, dword [esi + 0x44]
call fcn.100087f0
mov eax, dword [esi + 0x40]
mov esp, dword [esi + 0x74]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax]
lea edi, [esi + 0xe4]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
mov eax, dword [esi + 0xa8]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xa4]
mov eax, dword [eax]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0xa0]
mov ebx, dword [eax]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax]
call fcn.10007bca
mov edi, 0xd6d82522
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push dword [esi + 0x1c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
jmp 0x1007c184
mov ecx, dword [esi + 0x80]
call fcn.100087f0
mov esp, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
call fcn.100087f0
mov dword [esi + 0x7c], ebx
mov esp, dword [esi + 0xb4]
mov eax, dword [esi + 0x7c]
cmp eax, 0xffffffff
mov eax, 0xc703c653
mov ecx, 0xdd7ee5de
cmove eax, ecx
mov edi, dword [esi + 0x88]
mov dword [edi], eax
jmp 0x1007b378
cmp eax, 0xdef4388e
je 0x1007cd40
mov eax, dword [edi]
jmp 0x1007b378
mov eax, dword [esi + 0x28]
mov ebx, dword [eax]
mov eax, dword [esi + 0x2c]
mov edi, dword [eax]
push dword [esi + 0x78]
call fcn.1005c627
add esp, 4
push ebx
call fcn.1005c627
add esp, 4
lea ecx, [esi + 0xcc]
call fcn.100087f0
mov eax, dword [esi + 0x9c]
mov eax, dword [esi + 0x98]
mov eax, dword [esi + 0x94]
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x8c]
call fcn.100087f0
mov ecx, dword [esi + 0x5a8]
xor ecx, ebp
call fcn.100879aa
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret