Function at 0x1007d18c
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x17c
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], ebx
mov ebx, eax
movzx eax, byte [edx + 0x128]
mov dword [ebp - 0x24], 1
xor ecx, ecx
test al, 4
mov dword [ebp - 4], edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
je 0x1007b560
mov eax, dword [ebx + 0x80]
test eax, eax
jne 0x1007b560
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x1007dac1
mov eax, dword [ebx + 0xa4]
test eax, eax
je 0x1007b573
mov byte [ebp - 0x148], 0
jmp 0x1007b5ba
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x148]
mov esi, dword [ebx + 0x58]
mov edi, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 4]
call fcn.10079f74
test eax, eax
je 0x1007b5ba
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x148]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x1007b5d9
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x1007b5c2
add eax, 0xffffffff
mov edx, dword [ebp - 4]
movsx esi, ax
mov word [edx + 0x11a], si
lea ecx, [edx + 0x60]
add esi, 3
mov dword [ebp - 0x28], ecx
push ecx
push 0
push esi
call fcn.1004970c
add esp, 0xc
test eax, eax
je 0x1007b60c
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
lea edi, [ebp - 0x148]
mov esi, dword [eax + 0x60]
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x1007b618
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x90]
or edx, dword [eax + 0x94]
jne 0x1007b64b
mov dword [eax + 0x90], 1
mov dword [eax + 0x94], 0
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x1007b677
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
or esi, 0x80
or edx, 0x80000000
or byte [eax + 0x129], 0x40
or byte [eax + 0x12f], 2
jmp 0x1007b689
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
or esi, 0x80
or edx, 0xc0000000
mov eax, dword [ebx + 0x6c]
test eax, eax
je 0x1007ea65
cmp eax, 2
je 0x1007b727
cmp eax, 1
jne 0x1007b6c8
mov edi, dword [ebp - 4]
or byte [edi + 0x129], 0x40
or esi, 0x80
xor eax, eax
and edx, 0x3fffffff
mov dword [ebp - 0x2c], eax
or edx, 0x80000000
jmp 0x1007b75c
cmp eax, 3
jne 0x1007b702
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x129]
test cl, 0x40
jne 0x1007e98a
mov edi, eax
or byte [edi + 0x12d], 0x40
or esi, 0x80
xor eax, eax
and edx, 0x7fffffff
or edx, 0x40000000
mov dword [ebp - 0x2c], eax
jmp 0x1007b75c
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2ed
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x129]
test cl, 0x40
jne 0x1007e98a
mov ecx, eax
movzx edi, byte [ecx + 0x128]
or esi, 0x80
or edx, 0xc0000000
and edi, 4
xor eax, eax
test edi, edi
sete al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x8c]
test eax, eax
je 0x1007b834
cmp eax, 2
je 0x1007b7fd
cmp eax, 1
jne 0x1007b79e
mov edi, dword [ebp - 4]
or byte [edi + 0x129], 0x40
or esi, 0x80
xor eax, eax
and edx, 0x3fffffff
mov dword [ebp - 0x2c], eax
or edx, 0x80000000
jmp 0x1007b834
cmp eax, 3
jne 0x1007b7d8
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x129]
test cl, 0x40
jne 0x1007e98a
mov edi, eax
or byte [edi + 0x12d], 0x40
or esi, 0x80
xor eax, eax
and edx, 0x7fffffff
or edx, 0x40000000
mov dword [ebp - 0x2c], eax
jmp 0x1007b834
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x23b
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x129]
test cl, 0x40
jne 0x1007e98a
mov edi, eax
mov ecx, dword [ebp - 0x2c]
movzx eax, byte [edi + 0x128]
or esi, 0x80
or edx, 0xc0000000
test al, 4
je 0x1007b831
mov ecx, 0
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebx]
cmp eax, 4
ja case.default.0x1007b84c
mov eax, dword [eax*4 + 0x100c149c]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], edx
jmp eax
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x12b]
or eax, 8
mov dword [ebp - 0x44], eax
mov byte [edx + 0x12b], al
jmp 0x1007b8c1
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x129]
test dl, 0x40
jne 0x1007e98a
mov edx, eax
movzx eax, byte [edx + 0x12b]
or eax, 1
or eax, 2
mov byte [edx + 0x12b], al
mov dword [ebp - 0x44], eax
jmp 0x1007b8c1
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x12b]
or eax, 4
mov dword [ebp - 0x44], eax
mov byte [edx + 0x12b], al
jmp 0x1007b8c1
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x12b]
or eax, 2
mov dword [ebp - 0x44], eax
mov byte [edx + 0x12b], al
mov eax, dword [ebx + 0x58]
cmp eax, 5
ja case.default.0x1007b8d4
mov eax, dword [eax*4 + 0x100c14b0]
jmp eax
mov eax, edx
movzx edx, byte [eax + 0x129]
test dl, 0x40
jne 0x1007b902
mov eax, dword [ebp - 0x44]
test al, 1
je 0x1007ba20
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 4
jne 0x1007ba20
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov eax, edx
movzx edx, byte [eax + 0x129]
test dl, 0x40
jne 0x1007b938
mov eax, dword [ebp - 0x44]
test al, 1
je 0x1007b94a
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 4
jne 0x1007b94a
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
or byte [eax + 0x12a], 4
or edx, 2
or esi, 0x4000002
mov dword [ebp - 0x14], esi
jmp 0x1007ba26
mov eax, edx
movzx edx, byte [eax + 0x129]
test dl, 0x40
jne 0x1007b98c
mov eax, dword [ebp - 0x44]
test al, 1
je 0x1007b99e
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 4
jne 0x1007b99e
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x18]
or edx, 1
jmp 0x1007ba26
mov eax, edx
mov edx, dword [ebp - 0x18]
or byte [eax + 0x12a], 2
or edx, 3
jmp 0x1007ba26
mov eax, edx
movzx edx, byte [eax + 0x128]
test dl, 4
je case.0x1007b8d4.4
push str.USER
lea eax, [ebp - 0x148]
push eax
call fcn.10091576
add esp, 8
test eax, eax
jne case.0x1007b8d4.4
mov eax, dword [ebp - 4]
or byte [eax + 0x12a], 8
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x129]
test dl, 0x40
je 0x1007ba05
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007ba11
movzx edx, byte [eax + 0x12f]
test dl, 2
je 0x1007ba20
mov edx, dword [ebp - 0x18]
or byte [eax + 0x12a], 2
or edx, 3
jmp 0x1007ba26
mov edx, dword [ebp - 0x18]
or edx, 4
mov eax, dword [ebx + 0x28]
cmp eax, 6
ja case.default.0x1007bbaf
mov eax, dword [eax*4 + 0x100c14c8]
mov dword [ebp - 0x18], edx
jmp eax
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12a]
test dl, 4
je case.0x1007ba3c.2
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12a]
test al, 4
jne 0x1007e98a
mov edx, dword [ebp - 4]
or eax, 0x20
mov byte [edx + 0x12a], al
jmp case.0x1007ba3c.0
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12a]
test al, 4
jne 0x1007e98a
mov edx, dword [ebp - 4]
or eax, 0x10
mov byte [edx + 0x12a], al
jmp case.0x1007ba3c.0
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x129]
test dl, 0x40
jne 0x1007e98a
mov edx, eax
movzx eax, byte [edx + 0x12a]
or eax, 8
mov byte [edx + 0x12a], al
mov edx, dword [ebx + 0x28]
cmp edx, 5
jne 0x1007badd
mov edx, dword [ebp - 4]
or eax, 0x10
mov byte [edx + 0x12a], al
jmp case.0x1007ba3c.0
cmp edx, 6
jne case.0x1007ba3c.0
mov edx, dword [ebp - 4]
or eax, 0x20
mov byte [edx + 0x12a], al
jmp case.0x1007ba3c.0
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12a]
test dl, 4
je case.0x1007ba3c.0
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x34]
cmp eax, 4
ja case.default.0x1007bb24
mov eax, dword [eax*4 + 0x100c14e4]
jmp eax
mov eax, dword [ebp - 4]
or byte [eax + 0x12f], 0x80
jmp 0x1007bb8d
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test edx, 0x80
jne 0x1007bb4d
or byte [eax + 0x12a], 0x80
jmp 0x1007bb8d
or byte [eax + 0x12f], 0x40
jmp 0x1007bb8d
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12b]
test al, 4
jne 0x1007bb68
test al, 8
je case.0x1007bb24.1
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test edx, 0x80
jne 0x1007bb4d
or byte [eax + 0x12a], 0x80
jmp 0x1007bb8d
mov eax, dword [ebp - 4]
or byte [eax + 0x12a], 0x40
mov edx, eax
movsx eax, byte [ebx + 0x4c]
mov dword [ebp - 0x44], eax
mov byte [edx + 0x11c], al
mov eax, dword [ebx + 0x4c]
cmp eax, 7
ja case.default.0x1007bbaf
mov eax, dword [eax*4 + 0x100c14f8]
jmp eax
mov eax, edx
movzx eax, byte [eax + 0x12b]
test al, 4
jne 0x1007bbd0
test al, 8
jne 0x1007bbd0
mov eax, edx
movzx edx, byte [eax + 0x12a]
test dl, 0x40
je case.0x1007bbaf.0
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov edi, edx
mov byte [edi + 0x11c], 4
mov eax, 4
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 4]
movsx eax, byte [ebx + 0x18]
mov dword [ebp - 0x154], eax
mov byte [edx + 0x11e], al
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x1007e9d7
cmp eax, 1
je 0x1007bc44
cmp eax, 2
je 0x1007bc44
cmp eax, 3
je 0x1007bc44
mov eax, edx
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2f2
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x1007e99c
cmp eax, 1
je 0x1007bcba
cmp eax, 2
jne 0x1007bc82
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x12b]
test cl, 8
jne 0x1007e98a
mov byte [eax + 0x11d], 2
mov edx, 2
mov eax, 2
jmp 0x1007bd04
cmp eax, 3
jne case.default.0x1007bbaf
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x12b]
test cl, 4
jne 0x1007e98a
test cl, 1
jne 0x1007e98a
mov byte [eax + 0x11d], 3
mov edx, 3
mov eax, 3
jmp 0x1007bd04
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x12b]
test cl, 4
je 0x1007bce7
mov eax, dword [ebp - 0x44]
cmp eax, 1
je 0x1007bce7
test eax, eax
je 0x1007bce7
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
test cl, 8
jne 0x1007e98a
mov eax, dword [ebp - 4]
mov byte [eax + 0x11d], 1
mov edx, 1
mov eax, 1
cmp eax, 2
je 0x1007bd0e
test cl, 4
je 0x1007bd26
or esi, 0x10000000
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 4]
movsx eax, byte [esi + 0x11c]
mov dword [ebp - 0x44], eax
mov eax, edx
mov edx, dword [ebx + 0x4c]
test edx, edx
jne 0x1007bde7
cmp eax, 3
je 0x1007bd4f
cmp eax, 2
je 0x1007bd4f
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x12b]
test dl, 4
jne 0x1007bd4f
test dl, 8
je 0x1007bd66
mov esi, dword [ebp - 4]
mov byte [esi + 0x11c], 1
mov edx, 1
mov dword [ebp - 0x44], edx
jmp 0x1007bde7
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12f]
test al, 0x40
jne 0x1007bd7b
test eax, 0x80
je 0x1007bd8f
mov esi, dword [ebp - 4]
mov byte [esi + 0x11c], 5
mov eax, 5
mov dword [ebp - 0x44], eax
jmp 0x1007bdf1
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12a]
test edx, 0x80
je 0x1007bdb4
mov esi, eax
mov byte [esi + 0x11c], 4
mov eax, 4
mov dword [ebp - 0x44], eax
jmp 0x1007bdf1
mov eax, dword [ebp - 0x154]
cmp eax, 3
je 0x1007bdd3
mov esi, dword [ebp - 4]
mov byte [esi + 0x11c], 6
mov eax, 6
mov dword [ebp - 0x44], eax
jmp 0x1007bdf1
mov esi, dword [ebp - 4]
mov byte [esi + 0x11c], 5
mov eax, 5
mov dword [ebp - 0x44], eax
jmp 0x1007bdf1
cmp eax, 3
je 0x1007be03
cmp eax, 2
je 0x1007be03
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12b]
test al, 4
jne 0x1007be03
test al, 8
je 0x1007be1d
mov eax, dword [ebp - 0x44]
cmp eax, 1
je 0x1007be1d
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12f]
test dl, 0x40
je 0x1007be55
movzx eax, byte [eax + 0x12b]
test al, 1
jne 0x1007be3b
test al, 2
je 0x1007be55
mov eax, dword [ebp - 0x44]
cmp eax, 5
je 0x1007be61
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x44]
cmp eax, 4
je 0x1007e97b
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x54]
or ecx, 1
test eax, eax
jne 0x1007be7d
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007be9b
mov eax, dword [ebp - 4]
or byte [eax + 0x12a], 1
or ecx, 2
xor edx, edx
and byte [eax + 0x130], 0xfe
mov dword [ebp - 0x16c], edx
jmp 0x1007bea6
mov eax, 1
mov dword [ebp - 0x16c], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x1007bedc
cmp eax, 1
je 0x1007bef1
cmp eax, 2
je 0x1007bee7
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x23d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x1007e95c
mov eax, dword [ebp - 4]
or byte [eax + 0x12b], 0x10
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x154], eax
test eax, eax
jne 0x1007c043
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12a]
test dl, 0x40
je 0x1007bf2c
mov eax, dword [0x100d0448]
mov dword [ebp - 0x154], eax
cmp eax, 0xfffffffe
je 0x1007ea96
cmp eax, 0xffffffff
jne 0x1007bf45
jmp 0x1007bf50
mov eax, dword [0x100d044c]
mov dword [ebp - 0x154], eax
cmp eax, 0xfffffffe
je 0x1007ea84
cmp eax, 0xffffffff
je 0x1007bf50
mov dword [ebx + 0x48], eax
test eax, eax
jne 0x1007c043
mov eax, dword [ebp - 4]
movsx edx, byte [eax + 0x11c]
cmp edx, 1
je 0x1007bf6a
movzx eax, byte [eax + 0x12b]
test al, 4
je 0x1007bf8f
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je 0x1007eaa8
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x241
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x12f]
mov dword [ebp - 0x1c], ecx
test dl, 0x40
jne 0x1007bfa9
test edx, 0x80
je 0x1007bfc2
mov edx, dword [ebp - 4]
mov dword [edx + 0xc0], 0x400
mov dword [edx + 0xc4], 0x10000
jmp 0x1007c032
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x128]
test cl, 4
je 0x1007bff3
movzx edx, byte [edx + 0x12a]
test dl, 0x40
je 0x1007bffa
mov ecx, dword [ebp - 4]
mov edx, 0x400
mov dword [ecx + 0xc0], edx
mov dword [ecx + 0xc4], edx
jmp 0x1007c032
movzx edx, byte [edx + 0x12a]
test edx, 0x80
je 0x1007c01b
mov edx, dword [ebp - 4]
mov dword [edx + 0xc0], 0x800
mov dword [edx + 0xc4], 0x1fe
jmp 0x1007c032
mov edx, dword [ebp - 4]
mov dword [edx + 0xc0], 0x85
mov dword [edx + 0xc4], 0x84
mov edx, dword [ebp - 4]
or eax, 0x20
mov byte [edx + 0x12b], al
jmp 0x1007c176
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007c07b
mov eax, dword [ebp - 0x154]
test eax, eax
jle 0x1007c069
cdq
sub eax, 0xfffffffa
sbb edx, 0
jl 0x1007c089
or eax, edx
je 0x1007c089
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x245
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x154]
test eax, eax
jle 0x1007eaa8
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x154]
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x12a]
mov dword [edx + 0xc4], eax
test ecx, 0x80
je 0x1007c0d2
mov eax, edx
movzx edx, byte [eax + 0x12c]
test dl, 4
jne 0x1007c0d2
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebx + 0x7c]
mov edx, ecx
shl edx, 2
test eax, eax
jne 0x1007c0cc
mov ecx, edx
mov dword [ebp - 0x154], ecx
mov eax, dword [ebp - 4]
movsx eax, byte [eax + 0x11c]
add eax, 0xffffffff
cmp eax, 6
ja case.default.0x1007c0eb
mov eax, dword [eax*4 + 0x100c1518]
jmp eax
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 0x154]
movsx edx, byte [eax + 0x11e]
lea ecx, [esi + 1]
cmp edx, 3
jne 0x1007c107
mov esi, ecx
mov dword [ebp - 0x154], esi
jmp case.0x1007c0eb.0
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12f]
test edx, 0x80
je case.0x1007c0eb.0
mov dword [eax + 0xc4], 0x10000
mov edx, 0x400
or byte [eax + 0x12b], 0x20
mov dword [ebp - 0x154], edx
jmp case.0x1007c0eb.0
add dword [ebp - 0x154], 4
jmp case.0x1007c0eb.0
add dword [ebp - 0x154], 8
jmp case.0x1007c0eb.0
push 0x633
push str.for_nt_open_proc.c
push 2
push 8
call fcn.100149ac
add esp, 0x10
mov eax, dword [ebp - 0x154]
mov edx, dword [ebp - 4]
mov dword [edx + 0xc0], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x1007c18a
mov dword [edx + 0x54], eax
movzx eax, byte [ebx + 8]
mov byte [edx + 0x11f], al
mov eax, dword [ebx + 0x3c]
mov dword [edx + 0xa8], eax
mov ecx, dword [ebx + 0x70]
test ecx, ecx
je 0x1007c20d
mov eax, edx
movzx edx, byte [eax + 0x12a]
test dl, 0x40
jne 0x1007c1ca
movzx edx, byte [eax + 0x128]
test dl, 0x20
je 0x1007e98a
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2ee
mov esp, ebp
pop ebp
ret
cmp ecx, 2
je 0x1007c20d
cmp ecx, 1
jne 0x1007c1dd
mov byte [eax + 0x121], 0x27
jmp 0x1007c217
cmp ecx, 3
jne 0x1007c1eb
mov byte [eax + 0x121], 0x22
jmp 0x1007c217
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2ef
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov byte [eax + 0x121], 0
mov ecx, dword [ebx + 0x74]
test ecx, ecx
je 0x1007c281
movzx edx, byte [eax + 0x12a]
test dl, 0x40
jne 0x1007c24c
movzx edx, byte [eax + 0x128]
test dl, 0x20
je 0x1007e98a
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2f0
mov esp, ebp
pop ebp
ret
cmp ecx, 2
je 0x1007c281
cmp ecx, 1
jne 0x1007c25f
and byte [eax + 0x12d], 0x7f
jmp 0x1007c2a7
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2f1
mov esp, ebp
pop ebp
ret
mov edx, eax
movzx eax, byte [edx + 0x12d]
movzx esi, byte [edx + 0x128]
and eax, 0x7f
and esi, 2
shr esi, 1
and esi, 1
shl esi, 7
or eax, esi
mov byte [edx + 0x12d], al
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x1007c2fc
cmp eax, 1
je 0x1007c2e2
cmp eax, 2
je 0x1007c2e2
cmp eax, 3
je 0x1007c2e2
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2ec
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12b]
test al, 4
jne 0x1007e98a
test al, 8
jne 0x1007e98a
mov eax, dword [ebx + 0x90]
cmp eax, 5
ja case.default.0x1007c312
mov eax, dword [eax*4 + 0x100c1534]
jmp eax
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + 0x12a]
movzx edx, byte [ecx + 0x130]
and eax, 0xfffffffe
mov byte [ecx + 0x12a], al
and edx, 0xfffffff0
and dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x154], eax
or edx, 8
mov byte [ecx + 0x130], dl
xor esi, esi
mov dword [ebp - 0x16c], esi
jmp 0x1007c480
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + 0x12a]
movzx edx, byte [ecx + 0x130]
or esi, 2
and esi, 0xfffffffe
mov dword [ebp - 0x1c], esi
and eax, 0xfffffffe
mov dword [ebp - 0x154], eax
mov byte [ecx + 0x12a], al
and edx, 0xfffffff0
or edx, 2
mov byte [ecx + 0x130], dl
xor edi, edi
mov dword [ebp - 0x16c], edi
jmp 0x1007c480
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + 0x12a]
movzx edx, byte [ecx + 0x130]
or eax, 1
mov byte [ecx + 0x12a], al
or edx, 1
or dword [ebp - 0x1c], 2
mov dword [ebp - 0x154], eax
and edx, 0xfffffff1
mov byte [ecx + 0x130], dl
xor esi, esi
mov dword [ebp - 0x16c], esi
jmp 0x1007c480
mov eax, dword [ebx + 0x54]
test eax, eax
jne 0x1007c3e9
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007c413
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x12a]
or byte [edx + 0x130], 1
or eax, 1
mov dword [ebp - 0x154], eax
mov byte [edx + 0x12a], al
xor ecx, ecx
mov dword [ebp - 0x16c], ecx
jmp 0x1007c480
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x1007c454
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + 0x12a]
movzx edx, byte [ecx + 0x130]
and eax, 0xfffffffe
mov byte [ecx + 0x12a], al
and edx, 0xfffffff0
and dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x154], eax
or edx, 4
mov byte [ecx + 0x130], dl
xor esi, esi
mov dword [ebp - 0x16c], esi
jmp 0x1007c480
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + 0x12a]
movzx edx, byte [ecx + 0x130]
and eax, 0xfffffffe
mov byte [ecx + 0x12a], al
and edx, 0xfffffff0
mov dword [ebp - 0x154], eax
or edx, 8
mov byte [ecx + 0x130], dl
test al, 0x40
je 0x1007c4d8
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12b]
test al, 2
jne 0x1007c496
test al, 1
je 0x1007c4a8
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 3
jmp 0x1007c59b
test al, 4
je 0x1007c4be
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 2
jmp 0x1007c59b
test al, 8
je 0x1007c59b
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 8
jmp 0x1007c59b
test eax, 0x80
jne 0x1007c4ed
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12f]
test al, 0x40
je 0x1007c54f
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12b]
test al, 2
jne 0x1007c4ff
test al, 1
je 0x1007c529
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12f]
test dl, 0x40
je 0x1007c51d
mov dword [eax + 0x100], 7
jmp 0x1007c59b
mov dword [eax + 0x100], 0xb
jmp 0x1007c59b
test al, 4
je 0x1007c53c
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 6
jmp 0x1007c59b
test al, 8
je 0x1007c59b
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 9
jmp 0x1007c59b
test eax, 0x80
je 0x1007c59b
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12b]
test al, 2
jne 0x1007c568
test al, 1
je 0x1007c577
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 5
jmp 0x1007c59b
test al, 4
je 0x1007c58a
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 4
jmp 0x1007c59b
test al, 8
je 0x1007c59b
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 0xa
mov eax, dword [ebx + 0x84]
test eax, eax
je 0x1007c5c1
mov edx, dword [0x100d9158]
test edx, edx
jne 0x1007c5c7
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x232
mov esp, ebp
pop ebp
ret
mov edx, dword [0x100d9158]
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x1007e8e4
test edx, edx
je 0x1007da1a
mov eax, dword [ebx + 0x98]
mov dword [ebp - 0x154], eax
mov eax, dword [ebx + 0x9c]
cmp eax, 1
je 0x1007c657
test eax, eax
jne 0x1007c618
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x131]
test dl, 8
jne 0x1007c621
push str.FORT_BUFFERED
call sym.libifcoremd.dll_for_check_env_name
pop ecx
test eax, eax
jne 0x1007c621
jmp 0x1007c657
cmp eax, 2
jne case.default.0x1007bbaf
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x148]
push eax
push edx
call fcn.1002aeb0
add esp, 8
mov ecx, dword [ebp - 4]
xor edx, edx
cmp eax, 0xffffffff
sete dl
movzx eax, byte [ecx + 0x131]
and eax, 0xffffffef
and edx, 1
shl edx, 4
or eax, edx
mov byte [ecx + 0x131], al
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x148]
push eax
push edx
call fcn.1002aeb0
mov dword [ebp - 0x44], eax
add esp, 8
cmp eax, 0xffffffff
je 0x1007c6db
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x100]
cmp eax, 3
jne 0x1007c68f
mov eax, dword [ebp - 4]
mov dword [eax + 0x100], 1
jmp 0x1007c694
cmp eax, 5
jne 0x1007c6b3
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007c6db
or byte [eax + 0x12a], 2
mov dword [ebp - 0x18], 3
jmp 0x1007c6db
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x128]
test al, 4
je 0x1007c6db
test al, 0x20
je 0x1007cd2b
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x229
mov esp, ebp
pop ebp
ret
mov eax, dword [0x100d9158]
test eax, eax
jne 0x1007c6f6
mov edx, dword [ebp - 0x44]
cmp edx, 0xfffffffa
jne 0x1007c723
mov edx, 1
mov dword [ebp - 0x44], edx
jmp 0x1007c737
mov edx, dword [ebp - 0x44]
cmp edx, 0xfffffffa
je 0x1007e6d0
cmp edx, 1
je 0x1007c737
mov edx, dword [ebp - 0x154]
test edx, edx
jne 0x1007da1a
mov edx, dword [ebx + 0x84]
test edx, edx
jne 0x1007c5af
mov edx, dword [ebp - 0x44]
cmp edx, 0xfffffffc
je 0x1007e84e
test edx, edx
jl 0x1007e6bc
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x100]
cmp ecx, 1
jne 0x1007c771
mov edx, dword [ebp - 0x44]
test edx, edx
je 0x1007c756
cmp edx, 2
je 0x1007c756
cmp edx, 1
jne 0x1007c771
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x130]
and edx, 0xffffffdf
and eax, 1
shl eax, 5
or edx, eax
mov byte [ecx + 0x130], dl
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x1007c83b
mov eax, dword [ebx + 0xa4]
test eax, eax
jne 0x1007c813
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x154], eax
test eax, eax
je 0x1007dad8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc8]
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x150], edx
lea ecx, [ebp - 0x148]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x1007c7d3
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x1007c7bc
add eax, 0xffffffff
lea edi, [ebp - 0x14c]
lea esi, [ebp - 0x18]
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0x150]
push eax
push edx
push edi
push ecx
push esi
push edi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x154]
call eax
mov dword [ebp - 0x28], eax
add esp, 0x24
mov edx, dword [ebp - 4]
mov dword [edx + 0xb4], eax
jmp 0x1007c847
push dword [ebx + 0xa8]
call fcn.10093d27
mov dword [ebp - 0x28], eax
add esp, 4
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xb4], eax
mov edx, dword [ebx + 0xa8]
mov dword [ecx + 0x134], edx
jmp 0x1007c847
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xb4]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
je 0x1007e3a1
mov eax, dword [ebx + 0xa4]
test eax, eax
jne 0x1007c993
mov eax, dword [0x100d9108]
test eax, eax
je 0x1007c97f
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12b]
test dl, 4
jne 0x1007c96e
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x1007c8fd
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x12f]
mov dword [eax + 0x134], 0xffffffff
test ecx, 0x80
mov ecx, dword [ebp - 0x20]
mov esi, 0x8000
jne 0x1007c8b1
mov esi, 0
test ecx, 0xc0000000
je 0x1007c8be
or esi, 2
jmp 0x1007c8cd
and ecx, 0x40000000
xor eax, eax
test ecx, ecx
setne al
or esi, eax
mov eax, dword [ebx + 0x78]
cmp eax, 1
je 0x1007c8da
test dl, 1
je 0x1007c8dd
or esi, 8
mov eax, dword [ebp - 0x28]
push esi
push eax
call fcn.10093fa6
add esp, 8
mov edx, dword [ebp - 4]
mov dword [edx + 0x134], eax
mov eax, dword [0x100d9158]
jmp 0x1007c998
mov eax, dword [0x100d9158]
test eax, eax
jne 0x1007c95f
mov eax, dword [ebp - 0x44]
cmp eax, 1
je 0x1007c94f
test eax, eax
jne 0x1007c925
mov eax, dword [0x100cf050]
mov edx, dword [ebp - 4]
mov dword [edx + 0x134], eax
jmp 0x1007c9ce
cmp eax, 2
jne 0x1007c93d
mov eax, dword [0x100cf090]
mov edx, dword [ebp - 4]
mov dword [edx + 0x134], eax
jmp 0x1007c9ce
mov eax, dword [ebp - 4]
mov dword [eax + 0x134], 0xffffffff
jmp 0x1007c9ce
mov eax, dword [0x100cf070]
mov edx, dword [ebp - 4]
mov dword [edx + 0x134], eax
jmp 0x1007c9ce
mov eax, dword [ebp - 4]
mov dword [eax + 0x134], 0xffffffff
jmp 0x1007c99c
mov dword [eax + 0x134], 0xffffffff
mov eax, dword [0x100d9158]
jmp 0x1007c998
mov eax, dword [ebp - 4]
mov dword [eax + 0x134], 0xffffffff
mov eax, dword [0x100d9158]
jmp 0x1007c998
mov eax, dword [0x100d9158]
test eax, eax
je 0x1007c9c2
mov eax, dword [ebp - 0x44]
lea ecx, [eax + 6]
cmp ecx, 0x20
jae 0x1007c9c2
mov eax, 1
shl eax, cl
test eax, 0x1c1
je 0x1007c9c2
mov eax, 2
mov dword [ebp - 0x154], eax
jmp 0x1007c9de
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xb4]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 4]
movsx eax, byte [eax + 0x11e]
test eax, eax
jne 0x1007cb39
mov eax, dword [ebp - 4]
movsx edx, byte [eax + 0x11c]
cmp edx, 1
je 0x1007db06
movzx edx, byte [eax + 0x129]
and edx, 6
shr edx, 1
test edx, edx
je 0x1007cab0
mov ecx, dword [eax + 0xc8]
add ecx, 2
cmp ecx, 0x20
jae 0x1007cab0
mov eax, 1
shl eax, cl
test eax, 0x103
je 0x1007cab0
cmp edx, 1
je 0x1007ca8e
cmp edx, 2
jne 0x1007ca63
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x128]
movzx edx, byte [eax + 0x12a]
mov byte [eax + 0x11e], 2
mov eax, 2
jmp 0x1007cb4a
cmp edx, 3
jne case.default.0x1007bbaf
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x128]
movzx edx, byte [eax + 0x12a]
mov byte [eax + 0x11e], 3
mov eax, 3
jmp 0x1007cb4a
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x128]
movzx edx, byte [eax + 0x12a]
mov byte [eax + 0x11e], 1
mov eax, 1
jmp 0x1007cb4a
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x128]
test cl, 4
je 0x1007cb0c
mov edx, dword [eax + 0x100]
cmp edx, 1
jne 0x1007cad3
movzx edx, byte [eax + 0x12a]
jmp 0x1007caea
movzx edx, byte [eax + 0x12a]
test dl, 0x40
je 0x1007cafb
mov eax, dword [ebp - 0x154]
cmp eax, 2
jne 0x1007cafb
mov eax, dword [ebp - 4]
mov byte [eax + 0x11e], 1
mov eax, 1
jmp 0x1007cb4a
mov eax, dword [ebp - 4]
mov byte [eax + 0x11e], 2
mov eax, 2
jmp 0x1007cb4a
movzx edx, byte [eax + 0x12a]
test dl, 0x40
je 0x1007cafb
mov eax, dword [ebp - 0x154]
cmp eax, 2
jne 0x1007cafb
test cl, 1
je 0x1007cafb
mov eax, dword [ebp - 4]
mov byte [eax + 0x11e], 1
mov eax, 1
jmp 0x1007cb4a
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x128]
movzx edx, byte [edx + 0x12a]
cmp eax, 3
je 0x1007cb6e
mov esi, dword [ebp - 4]
movsx edi, byte [esi + 0x11c]
cmp edi, 1
je 0x1007cb65
add dword [esi + 0xc0], 1
cmp eax, 1
je 0x1007e383
test cl, 1
je 0x1007cb98
mov eax, dword [ebp - 4]
movzx esi, byte [eax + 0x12b]
test esi, 4
je 0x1007cb98
movsx esi, byte [eax + 0x11d]
cmp esi, 2
jne 0x1007cb98
add dword [eax + 0xc0], 1
test cl, 4
je 0x1007cbbf
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x12b]
test cl, 4
je 0x1007cbbf
and edx, 0x40
shr edx, 6
test edx, edx
je 0x1007cbc5
add dword [eax + 0xc0], 2
jmp 0x1007cbc5
and edx, 0x40
shr edx, 6
mov eax, dword [ebp - 0x154]
cmp eax, 1
jne 0x1007cbdf
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12c]
or eax, 2
jmp 0x1007cbec
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12c]
and eax, 0xfffffffd
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x12c], al
test edx, edx
je 0x1007cd0e
mov eax, ecx
push eax
call fcn.10027798
pop ecx
test eax, eax
jne 0x1007b5ad
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7c]
test edx, edx
je 0x1007cd0e
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x1007cd0e
mov esi, dword [edx + 0xc]
movzx eax, byte [esi + 0x12d]
test al, 0x10
je 0x1007cc46
movsx edx, byte [esi + 0x11e]
cmp edx, 1
je 0x1007db53
push esi
call fcn.1002b904
pop ecx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x7c]
test edx, edx
je 0x1007cc5b
mov byte [edx + 0x1e], 0
test eax, eax
je 0x1007ccf9
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1007db8a
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1007cc9c
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1007cc8f
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [esi + 0x12b]
movzx edi, byte [esi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x1007ccca
mov ecx, 0
test edi, 1
mov ebx, 4
jne 0x1007ccdc
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12b]
test al, 4
je 0x1007cd3d
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x12c]
test cl, 2
jne 0x1007cd3d
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x33
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x1007d5d3
mov eax, dword [ebx + 0x58]
cmp eax, 5
je 0x1007e272
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x1007d5c2
cmp eax, 2
je 0x1007d5c2
cmp eax, 3
jne 0x1007cda0
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x12b]
mov dword [edx + 0x90], 1
and eax, 0xfffffffe
mov dword [edx + 0x94], 0
mov byte [edx + 0x12b], al
and byte [edx + 0x12e], 0x7f
jmp 0x1007d5d3
cmp eax, 1
jne 0x1007cf39
mov eax, dword [ebx + 0x58]
cmp eax, 5
je 0x1007e248
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12c]
test dl, 2
jne 0x1007cdd0
movzx eax, byte [eax + 0x12b]
jmp 0x1007d5d3
mov esi, eax
mov eax, dword [esi + 0xb4]
xor ecx, ecx
mov dword [esp + 4], ecx
mov edx, 2
mov dword [esp + 8], ecx
call fcn.1007eabc
add eax, 1
add edx, 1
or eax, edx
je 0x1007e209
mov edx, esi
movzx eax, byte [edx + 0x12b]
mov ecx, dword [edx + 0x100]
and eax, 0xfffffffe
mov byte [edx + 0x12b], al
mov dword [edx + 0x90], 0x80000000
mov dword [edx + 0x94], 0xffffffff
and byte [edx + 0x12e], 0x7f
cmp ecx, 5
je 0x1007d5d3
mov eax, edx
movsx edx, byte [eax + 0x11c]
lea eax, [edx - 1]
cmp eax, 6
ja case.default.0x1007ce52
mov eax, dword [eax*4 + 0x100c154c]
jmp eax
cmp edx, 7
je 0x1007ddae
cmp edx, 5
je 0x1007dd84
mov eax, 3
mov dword [ebp - 0x28], eax
mov edx, esi
mov eax, dword [edx + 0xb4]
call fcn.1007eb08
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x2c], edx
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 4]
mov eax, dword [edi + 0xb4]
neg esi
mov ecx, 0xffffffff
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov edx, 1
call fcn.1007eabc
mov dword [ebp - 0x16c], eax
lea edi, [eax + 1]
lea ecx, [edx + 1]
or edi, ecx
je 0x1007cfa5
mov edi, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x2c]
sub edi, eax
sbb ecx, edx
sub edi, dword [ebp - 0x28]
or edi, ecx
jne 0x1007cfa5
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12d]
test dl, 0x40
je 0x1007ceef
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12b]
jmp 0x1007d5d3
mov esi, dword [ebp - 4]
mov eax, dword [esi + 0xb4]
xor ecx, ecx
mov dword [esp + 4], ecx
mov edx, 2
mov dword [esp + 8], ecx
call fcn.1007eabc
add eax, 1
add edx, 1
or eax, edx
je 0x1007dd64
mov edx, esi
movzx eax, byte [edx + 0x12b]
mov dword [edx + 0x90], 0x80000000
and eax, 0xfffffffe
mov dword [edx + 0x94], 0xffffffff
mov byte [edx + 0x12b], al
and byte [edx + 0x12e], 0x7f
jmp 0x1007d5d3
mov edx, esi
mov eax, dword [edx + 0xb4]
call fcn.1007eb08
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov ecx, esi
mov eax, dword [ecx + 0xb4]
mov dword [esp + 4], 0xfffffffc
mov edx, 1
mov dword [esp + 8], 0xffffffff
call fcn.1007eabc
lea esi, [eax + 1]
lea ecx, [edx + 1]
or esi, ecx
je 0x1007d052
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov eax, dword [ebp - 0x28]
sbb eax, edx
add ecx, 0xfffffffc
or ecx, eax
je 0x1007d0af
mov esi, dword [ebp - 4]
mov eax, dword [esi + 0xb4]
xor ecx, ecx
mov dword [esp + 4], ecx
mov edx, 2
mov dword [esp + 8], ecx
call fcn.1007eabc
add eax, 1
add edx, 1
or eax, edx
je 0x1007ddcd
mov edx, esi
movzx eax, byte [edx + 0x12b]
mov dword [edx + 0x90], 0x80000000
and eax, 0xfffffffe
mov dword [edx + 0x94], 0xffffffff
mov byte [edx + 0x12b], al
and byte [edx + 0x12e], 0x7f
jmp 0x1007d5d3
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12d]
test dl, 0x40
je 0x1007d0c9
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x1007dded
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x15c]
push 0
push eax
push 4
lea edx, [ebp - 0x168]
push edx
push dword [ecx + 0xb4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, eax
test esi, esi
je 0x1007df2b
mov eax, dword [ebp - 0x15c]
cmp eax, 4
jne 0x1007d12f
mov edx, esi
mov eax, dword [edx + 0xb4]
call fcn.1007eb08
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov ecx, esi
mov eax, dword [ecx + 0xb4]
mov dword [esp + 4], 0xfffffff7
mov edx, 1
mov dword [esp + 8], 0xffffffff
call fcn.1007eabc
lea esi, [eax + 1]
lea ecx, [edx + 1]
or esi, ecx
je 0x1007d307
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov eax, dword [ebp - 0x28]
sbb eax, edx
add ecx, 0xfffffff7
or ecx, eax
jne 0x1007d307
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12d]
test dl, 0x40
je 0x1007d1fe
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x1007df4c
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x15c]
push 0
push eax
push 9
lea edx, [ebp - 0x168]
push edx
push dword [ecx + 0xb4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, eax
test esi, esi
je 0x1007e06f
mov eax, dword [ebp - 0x15c]
cmp eax, 9
jne 0x1007d2aa
mov esi, dword [ebp - 4]
mov eax, dword [esi + 0xb4]
xor ecx, ecx
mov dword [esp + 4], ecx
mov edx, 2
mov dword [esp + 8], ecx
call fcn.1007eabc
add eax, 1
add edx, 1
or eax, edx
je 0x1007e090
mov edx, esi
movzx eax, byte [edx + 0x12b]
mov dword [edx + 0x90], 0x80000000
and eax, 0xfffffffe
mov dword [edx + 0x94], 0xffffffff
mov byte [edx + 0x12b], al
and byte [edx + 0x12e], 0x7f
jmp 0x1007d5d3
mov edx, esi
mov eax, dword [edx + 0xb4]
call fcn.1007eb08
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov edi, esi
mov eax, dword [edi + 0xb4]
xor ecx, ecx
xor esi, esi
sub ecx, dword [edi + 0xc0]
sbb esi, 0
mov dword [esp + 4], ecx
mov edx, 1
mov dword [esp + 8], esi
call fcn.1007eabc
lea esi, [eax + 1]
lea ecx, [edx + 1]
or esi, ecx
je 0x1007d3c0
mov ecx, edi
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0xc0]
sub esi, eax
mov eax, dword [ebp - 0x28]
sbb eax, edx
sub esi, ecx
or esi, eax
je 0x1007d41c
mov esi, edi
mov eax, dword [esi + 0xb4]
xor ecx, ecx
mov dword [esp + 4], ecx
mov edx, 2
mov dword [esp + 8], ecx
call fcn.1007eabc
add eax, 1
add edx, 1
or eax, edx
je 0x1007e0b0
mov edx, esi
movzx eax, byte [edx + 0x12b]
mov dword [edx + 0x90], 0x80000000
and eax, 0xfffffffe
mov dword [edx + 0x94], 0xffffffff
mov byte [edx + 0x12b], al
and byte [edx + 0x12e], 0x7f
jmp 0x1007d5d3
lea eax, [ebp - 0x16c]
push eax
push 0
push ecx
call fcn.1004970c
add esp, 0xc
test eax, eax
jne 0x1007b5ad
mov eax, edi
movzx edx, byte [eax + 0x12d]
test dl, 0x40
je 0x1007d44f
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x1007e0d0
mov edx, edi
lea eax, [ebp - 0x15c]
push 0
push eax
push dword [edx + 0xc0]
push dword [ebp - 0x16c]
push dword [edx + 0xb4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, eax
test esi, esi
je 0x1007e1e9
push 0xd67
push str.for_nt_open_proc.c
push 2
push 8
call fcn.100149ac
add esp, 0x10
mov eax, esi
movzx eax, byte [eax + 0x12b]
jmp 0x1007d5d3
mov eax, dword [ebp - 4]
or byte [eax + 0x12e], 0x80
movzx eax, byte [eax + 0x12b]
test al, 1
je 0x1007d678
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x12c]
test cl, 2
je 0x1007d69e
mov esi, edx
mov eax, dword [esi + 0xb4]
xor ecx, ecx
mov dword [esp + 4], ecx
mov edx, 2
mov dword [esp + 8], ecx
call fcn.1007eabc
add eax, 1
add edx, 1
or eax, edx
je 0x1007e2dc
mov eax, esi
mov edx, dword [eax + 0x100]
cmp edx, 7
jne 0x1007d650
mov eax, dword [esi + 0xb4]
mov ecx, 0xffffffff
mov dword [esp + 4], ecx
mov edx, 1
mov dword [esp + 8], ecx
call fcn.1007eabc
add eax, 1
add edx, 1
or eax, edx
je 0x1007e2bc
mov eax, esi
mov dword [eax + 0x90], 0x80000000
mov dword [eax + 0x94], 0xffffffff
and byte [eax + 0x12e], 0x7f
movzx eax, byte [eax + 0x12b]
test al, 1
jne 0x1007d69e
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x12c]
test cl, 2
je 0x1007d69e
movzx ecx, byte [edx + 0x128]
test cl, 4
je 0x1007d697
test al, 4
jne 0x1007d69e
or byte [edx + 0x12d], 2
test al, 0x20
jne 0x1007d6b4
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc0]
mov word [edx + 0x118], ax
jmp 0x1007d6f1
mov eax, dword [ebp - 4]
movsx edx, byte [eax + 0x11e]
cmp edx, 1
je 0x1007e33a
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007d6e3
mov edx, eax
mov eax, 0x4f
mov word [edx + 0x118], ax
jmp 0x1007d6f1
mov edx, eax
mov eax, 0x50
mov word [edx + 0x118], ax
mov esi, dword [ebx + 0x14]
test esi, esi
jne 0x1007d704
mov dword [ebx + 0x14], 1
mov esi, 1
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007d728
mov edx, dword [ebx + 0x10]
cmp edx, 0x7ffffe00
jle 0x1007d723
mov edx, 0x7ffffe00
mov dword [ebx + 0x10], edx
jmp 0x1007d72b
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x1007d757
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007d749
mov dword [ebx + 0x10], 0x400
mov eax, 0x400
jmp 0x1007d772
mov dword [ebx + 0x10], 0x2000
mov eax, 0x2000
jmp 0x1007d772
lea eax, [edx + 0x1ff]
sar eax, 8
shr eax, 0x17
lea eax, [eax + edx + 0x1ff]
and eax, 0xfffffe00
mov dword [ebx + 0x10], eax
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x12b]
test cl, 4
je 0x1007d810
movzx ecx, byte [edx + 0x128]
test cl, 4
je 0x1007d7a8
mov eax, edx
movzx edx, byte [eax + 0x131]
and edx, 0xffffffef
mov byte [eax + 0x131], dl
mov eax, dword [ebx + 0x10]
jmp 0x1007d7af
movzx edx, byte [edx + 0x131]
test dl, 0x10
je 0x1007d7f4
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xc0]
mov dword [ebp - 0x154], ecx
cmp eax, ecx
jb 0x1007d7d4
xor edx, edx
div ecx
imul ecx, eax
mov dword [ebp - 0x154], ecx
mov edx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebx + 0x10], edx
imul edx, dword [ebx + 0x14]
mov ecx, dword [ecx + 0xc0]
cmp ecx, edx
jbe 0x1007d7ec
mov edx, ecx
mov dword [ebp - 0x154], edx
jmp 0x1007d82a
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc0]
mov dword [ebx + 0x10], eax
mov ecx, dword [edx + 0xc0]
mov edx, ecx
mov dword [ebp - 0x154], ecx
jmp 0x1007d82a
imul esi, eax
mov ecx, edx
mov ecx, dword [ecx + 0xc0]
lea edx, [ecx + 4]
cmp edx, esi
ja 0x1007d824
mov edx, esi
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12a]
test eax, 0x80
je 0x1007d858
mov esi, dword [ebp - 4]
movsx edi, byte [esi + 0x11c]
cmp edi, 3
je 0x1007e2fc
mov ecx, esi
mov dword [ecx + 0xbc], edx
jmp 0x1007d861
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xbc], edx
mov edx, dword [ebx + 0x10]
mov dword [ecx + 0x104], edx
test al, 0x40
je 0x1007d947
lea eax, [ebp - 0x154]
push eax
push 0
push 0x54
call fcn.1004970c
add esp, 0xc
test eax, eax
je 0x1007d92f
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x18]
test ecx, ecx
je 0x1007e320
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1007d8cf
mov dword [ecx + 0x30], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [ecx + 0x64]
test edx, edx
je 0x1007d8c2
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 0x64], ecx
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 4]
push eax
push eax
movzx ebx, byte [esi + 0x12b]
movzx edi, byte [esi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x1007d900
mov ecx, 0
test edi, 1
mov ebx, 4
jne 0x1007d912
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x154]
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov dword [edx + 0x5c], eax
mov dword [eax], edx
movzx eax, byte [edx + 0x12a]
test eax, 0x80
jne 0x1007d963
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12f]
test al, 0x40
jne 0x1007d963
test eax, 0x80
je 0x1007d981
mov eax, dword [ebp - 4]
push ebx
push eax
call fcn.1002a308
add esp, 8
test eax, eax
je 0x1007d981
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 4]
lea eax, [edx + 0x38]
push eax
push 0
push dword [edx + 0xbc]
call fcn.1004970c
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x1007da0b
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x24]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
add eax, dword [ecx + 0xc0]
mov dword [ecx + 0x44], eax
mov dword [ecx + 0x108], edx
test esi, esi
je 0x1007d9e8
mov eax, ecx
mov edx, dword [eax + 0x100]
cmp edx, 7
jne 0x1007d9e8
mov edx, eax
mov eax, dword [edx + 0xb4]
call fcn.1007eb08
or eax, edx
jne 0x1007d9e8
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, ebx
mov ebx, dword [ebp - 0x10]
or byte [edx + 0x129], 0x20
mov dword [0x100d8cb0], 1
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, ebx
mov ebx, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x234
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x23f
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x23e
mov esp, ebp
pop ebp
ret
mov eax, edx
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x23a
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je case.default.0x1007bbaf
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x23c
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x30
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x58]
test eax, eax
jne 0x1007b560
mov dword [ebx + 0x58], 3
jmp 0x1007b560
lea edx, [ebp - 0x148]
xor eax, eax
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 4]
mov dword [edx + 0xb4], eax
jmp 0x1007c847
movzx ecx, byte [eax + 0x128]
test cl, 4
je 0x1007db3b
movzx edx, byte [eax + 0x12b]
test dl, 4
je 0x1007db3b
movzx edx, byte [eax + 0x12a]
test dl, 0x40
je 0x1007db42
mov byte [eax + 0x11e], 2
mov eax, 2
jmp 0x1007cb4a
movzx edx, byte [eax + 0x12a]
mov byte [eax + 0x11e], 3
mov eax, 3
jmp 0x1007cb4a
mov ecx, dword [esi + 0x38]
movsx edx, byte [ecx + 5]
cmp edx, 0x20
je 0x1007db7d
cmp edx, 0x2b
jne 0x1007db6f
mov byte [ecx + 5], 0
movzx eax, byte [esi + 0x12d]
and eax, 0xffffffef
mov byte [esi + 0x12d], al
jmp 0x1007cc46
mov byte [ecx + 5], 0x24
movzx eax, byte [esi + 0x12d]
jmp 0x1007db6f
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x1e
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, esi
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x78
mov esp, ebp
pop ebp
ret
mov eax, esi
movsx edx, byte [eax + 0x11e]
cmp edx, 3
mov ecx, 1
je 0x1007dd9c
mov ecx, 3
cmp edx, 2
jne 0x1007dda6
mov ecx, 2
mov dword [ebp - 0x28], ecx
jmp 0x1007ce6e
mov eax, esi
movsx edx, byte [eax + 0x11e]
cmp edx, 3
jne 0x1007ce66
mov eax, 2
mov dword [ebp - 0x28], eax
jmp 0x1007ce6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, esi
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x78
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x148]
xor eax, eax
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push eax
push 3
push 0x80000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x1007de72
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x1e
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x148]
xor eax, eax
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push eax
push 3
push 0x80000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x1007dfd1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x1e
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, esi
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x78
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, esi
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x78
mov esp, ebp
pop ebp
ret
mov edx, esi
mov eax, dword [edx + 0xb4]
call fcn.1007eb08
or eax, edx
jne 0x1007e228
mov eax, esi
movzx eax, byte [eax + 0x12b]
jmp 0x1007d5d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, esi
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x78
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov dword [eax + 0x90], 0x80000000
mov dword [eax + 0x94], 0xffffffff
and byte [eax + 0x12e], 0x7f
movzx eax, byte [eax + 0x12b]
jmp 0x1007d5d3
mov eax, dword [ebp - 4]
push dword [eax + 0xb4]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x1007e289
xor eax, eax
jmp 0x1007e29d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 4]
mov dword [edx + 0xb8], eax
mov eax, 0x26
mov edx, dword [ebp - 4]
and byte [edx + 0x12d], 0xfd
test eax, eax
je 0x1007cd54
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, esi
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x78
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, esi
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], eax
mov eax, 0x78
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x154]
add ecx, 8
cmp esi, ecx
jae 0x1007d858
mov edx, esi
mov ecx, dword [ebp - 4]
add edx, 8
mov dword [ecx + 0xbc], edx
jmp 0x1007d861
push edx
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007e352
mov esi, 0x50
mov ecx, 0x50
jmp 0x1007e35c
mov esi, 0x51
mov ecx, 0x51
movsx edx, byte [eax + 0x11c]
cmp edx, 1
je 0x1007e377
add ecx, 4
mov word [eax + 0x118], cx
jmp 0x1007d6f1
mov word [eax + 0x118], si
jmp 0x1007d6f1
mov eax, esi
movsx esi, byte [eax + 0x11c]
cmp esi, 1
je 0x1007cb6e
add dword [eax + 0xc0], 5
jmp 0x1007cb6e
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 1
jne 0x1007e512
mov eax, dword [ebx + 0xa4]
test eax, eax
jne 0x1007e512
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x13
je 0x1007e3e1
cmp eax, 5
je 0x1007e3e1
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x128]
test cl, 4
je 0x1007e45a
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x1007e45a
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0x129]
test cl, 0x40
jne 0x1007e45a
movzx ecx, byte [edx + 0x12d]
test cl, 0x40
jne 0x1007e45a
mov edx, dword [ebp - 0x20]
and edx, 0x3fffffff
lea ecx, [ebp - 0x148]
or edx, 0x80000000
xor eax, eax
mov dword [ebp - 0x20], edx
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push eax
push dword [ebp - 0x1c]
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x28], eax
mov edx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0xb4], edx
cmp edx, 0xffffffff
je 0x1007e5d3
or byte [eax + 0x129], 0x40
or byte [eax + 0x12f], 2
jmp 0x1007e506
cmp eax, 0x20
jne 0x1007e4fa
mov eax, dword [ebp - 0x16c]
test eax, eax
je 0x1007e4fa
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x1007e492
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x129]
test dl, 0x40
jne 0x1007e492
mov edx, dword [eax + 0xb4]
mov dword [ebp - 0x28], edx
jmp 0x1007e506
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
and ecx, 0x3fffffff
lea esi, [ebp - 0x148]
or ecx, 0x80000000
mov dword [ebp - 0x20], ecx
or edx, 2
xor eax, eax
mov dword [ebp - 0x1c], edx
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push eax
push edx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x28], eax
mov edx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0xb4], edx
cmp edx, 0xffffffff
je 0x1007e512
or byte [eax + 0x129], 0x40
or byte [eax + 0x12f], 2
or byte [eax + 0x12a], 1
or byte [eax + 0x130], 1
jmp 0x1007c853
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xb4]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
jne 0x1007c853
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call fcn.100936dd
mov dword [eax], ebx
cmp ebx, 2
jge 0x1007e680
cmp ebx, 0x7b
je 0x1007ea72
cmp ebx, 0xa1
je 0x1007ea72
cmp ebx, 0xce
je 0x1007ea72
cmp ebx, 0x50
je 0x1007e64d
cmp ebx, 0xb7
je 0x1007e64d
cmp ebx, 5
je 0x1007e628
cmp ebx, 0x13
je 0x1007e628
cmp ebx, 0xf
je 0x1007e5c1
cmp ebx, 0x14
je 0x1007e5c1
cmp ebx, 4
jne 0x1007e5a6
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je 0x1007dc41
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x25b
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx + 0xb8], ebx
mov eax, 0x1e
mov ebx, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2a
mov esp, ebp
pop ebp
ret
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007e447
mov edx, dword [ebp - 0x20]
and edx, 0x7fffffff
or edx, 0x40000000
xor eax, eax
mov dword [ebp - 0x20], edx
push eax
lea ecx, [ebp - 0x148]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push eax
push dword [ebp - 0x1c]
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 4]
or byte [edx + 0x12d], 0x40
mov dword [edx + 0xb4], eax
jmp 0x1007e506
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je 0x1007e83c
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x258
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je 0x1007e66e
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x259
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0xa
mov esp, ebp
pop ebp
ret
cmp ebx, 3
jg 0x1007e52a
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 0x20
je 0x1007e6aa
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x25a
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x1d
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x1007c771
mov eax, dword [ebp - 0x44]
cmp eax, 0xfffffffa
jne 0x1007c771
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x130]
mov dword [ebp - 0x24], 0
or eax, 0x20
mov byte [edx + 0x130], al
mov ecx, dword [ebx + 0x84]
test ecx, ecx
je 0x1007e71a
mov edx, dword [ebx + 0x88]
and eax, 0xffffffbf
test edx, edx
je 0x1007e70f
mov edx, dword [ebp - 4]
or eax, 0x40
mov byte [edx + 0x130], al
jmp 0x1007e723
mov edx, dword [ebp - 4]
mov byte [edx + 0x130], al
jmp 0x1007e723
or eax, 0x40
mov byte [edx + 0x130], al
mov eax, dword [ebp - 0x154]
lea edx, [ebp - 0x158]
push edx
test eax, eax
jne 0x1007e739
mov eax, pe_nt_image_headers32
lea ecx, [eax + 1]
mov dword [ebp - 0x154], eax
push 0
push ecx
call fcn.1004970c
add esp, 0xc
test eax, eax
jne 0x1007b5ad
mov eax, dword [ebx + 0x98]
test eax, eax
jne 0x1007e77d
mov eax, dword [ebp - 4]
push dword [eax + 0xc8]
push str.Unit__i
push dword [ebp - 0x158]
call fcn.100907f2
add esp, 0xc
jmp 0x1007e7a8
mov eax, dword [ebp - 0x154]
push eax
push dword [ebx + 0x94]
push dword [ebp - 0x158]
call fcn.10090940
add esp, 0xc
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x154]
mov byte [eax + edx], 0
push dword [ebp - 0x158]
call fcn.1007ed74
pop ecx
mov edx, dword [ebp - 4]
mov dword [edx + 0xb4], eax
cmp eax, 0xffffffff
je 0x1007e81c
movzx ecx, byte [edx + 0x130]
test cl, 0x40
je 0x1007e7fb
push eax
call fcn.1007ecec
mov eax, dword [ebp - 4]
push dword [eax + 0xb4]
call fcn.1007ed44
add esp, 8
test eax, eax
jne 0x1007e7fb
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x28e
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x158]
call fcn.10049680
pop ecx
test eax, eax
je 0x1007c771
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, edx
movzx edx, byte [eax + 0x128]
test dl, 0x20
je 0x1007e83c
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x258
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 9
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movsx edx, word [eax + 0x11a]
cmp edx, 4
jge 0x1007e898
push dword [eax + 0x60]
call fcn.10049680
pop ecx
test eax, eax
je 0x1007e877
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x28]
push eax
push 0
push 5
call fcn.1004970c
add esp, 0xc
test eax, eax
je 0x1007e898
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
lea esi, [ebp - 0x148]
mov edi, str.COM1
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x1007e8a3
mov eax, dword [ebp - 4]
lea edi, [ebp - 0x148]
mov esi, dword [eax + 0x60]
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x1007e8bd
mov edx, dword [ebp - 4]
mov eax, 4
mov word [edx + 0x11a], ax
mov eax, dword [0x100d9158]
jmp 0x1007e6bc
test edx, edx
jne 0x1007e900
push str.USER
lea eax, [ebp - 0x148]
push eax
call fcn.10091576
add esp, 8
test eax, eax
je 0x1007e90d
xor eax, eax
mov dword [ebp - 0x154], eax
jmp 0x1007c5e9
lea esi, [ebp - 0x148]
mov edi, 0x100bd0d0
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x1007e918
mov eax, dword [ebp - 4]
lea edi, [ebp - 0x148]
mov esi, dword [eax + 0x60]
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x1007e932
mov edx, dword [ebp - 4]
mov eax, 3
mov word [edx + 0x11a], ax
xor ecx, ecx
mov dword [ebp - 0x154], ecx
jmp 0x1007c5e9
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x128]
test dl, 1
je 0x1007bee7
and byte [eax + 0x12b], 0xef
jmp 0x1007bef1
mov eax, dword [ebp - 0x154]
cmp eax, 3
je 0x1007be61
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2e
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x12b]
test cl, 8
je 0x1007e9c1
mov byte [eax + 0x11d], 3
mov edx, 3
mov eax, 3
jmp 0x1007bd04
mov byte [eax + 0x11d], 1
mov edx, 1
mov eax, 1
jmp 0x1007bd04
mov eax, edx
movzx edx, byte [eax + 0x128]
test dl, 4
je 0x1007ea16
movzx edx, byte [eax + 0x12b]
test dl, 4
je 0x1007ea16
movzx edx, byte [eax + 0x12a]
test dl, 0x40
je 0x1007ea16
mov edx, eax
mov byte [edx + 0x11e], 2
mov eax, 2
mov dword [ebp - 0x154], eax
jmp 0x1007bc44
mov eax, dword [ebp - 0x44]
cmp eax, 4
je 0x1007ea4b
cmp eax, 1
je 0x1007ea4b
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x12a]
test edx, 0x80
jne 0x1007ea4b
movzx eax, byte [eax + 0x12f]
test al, 0x40
jne 0x1007ea4b
test eax, 0x80
je 0x1007bc44
mov edx, dword [ebp - 4]
mov byte [edx + 0x11e], 3
mov eax, 3
mov dword [ebp - 0x154], eax
jmp 0x1007bc44
mov eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x1007b75c
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x2b
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x64
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x63
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov eax, 0x25
mov esp, ebp
pop ebp
ret