Function at 0x403d53
Capabilities:
Enumerate pe sections
Get system information on windows
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x78
mov eax, dword [0x40f3c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [0x40f540], 0xa
jl 0x403d8e
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403d8e
jmp 0x403d7f
cmp esi, 0x3f
ja 0x403d8e
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
push eax
mov dword [ebp - 0x7c], esp
push eax
mov eax, esp
push eax
mov dword [ebp - 0x78], esp
push eax
mov dword [ebp - 0x74], esp
push eax
mov dword [ebp - 0x70], esp
push eax
mov edi, esp
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov dword [ebp - 0x48], esp
push eax
mov dword [ebp - 0x40], esp
push eax
mov dword [ebp - 0x28], esp
push eax
mov dword [ebp - 0x68], esp
sub esp, 0x24
mov dword [ebp - 0x64], esp
push eax
mov dword [ebp - 0x30], esp
push eax
mov dword [ebp - 0x54], esp
push eax
mov dword [ebp - 0x60], esp
push eax
mov ecx, esp
push eax
mov dword [ebp - 0x4c], esp
push eax
mov dword [ebp - 0x3c], esp
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp + 0x24]
mov dword [eax], ebx
mov ebx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x78]
mov dword [eax], ebx
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x74]
mov dword [eax], ebx
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x70]
mov dword [eax], ebx
mov dword [ebp - 0x6c], edi
mov ebx, dword [ebp + 0x14]
mov dword [edi], ebx
mov dword [ebp - 0x44], esi
mov edi, dword [ebp + 0x10]
mov dword [esi], edi
mov dword [ebp - 0x58], edx
mov esi, dword [ebp + 0xc]
mov dword [edx], esi
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
mov dword [ebp - 0x50], ecx
mov dword [ecx], 0
cmp esi, 0x3f
ja 0x403e2d
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp esi, 0x40
mov eax, dword [ebp - 0x7c]
setae byte [eax]
mov eax, dword [0x40f544]
mov ecx, dword [0x40f540]
cmp ecx, 0xa
jl 0x403e55
lea edx, [eax + 1]
imul edx, eax
and edx, 1
jne 0x403d81
mov edi, 0x29
xor ebx, ebx
cmp ecx, 0xa
jl 0x403e70
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404eed
cmp edi, 0x440c
jle 0x403ecc
cmp edi, 0x6442
jle 0x403f43
cmp edi, 0x701e
jg 0x404028
cmp edi, 0x6951
jle 0x4041aa
cmp edi, 0x6df0
jg 0x404393
cmp edi, 0x6952
je 0x404585
cmp edi, 0x6bfc
jne 0x404e99
mov dword [ebx + 0x38], 0
jmp 0x40434e
cmp edi, 0x1ad3
jle 0x403fe7
cmp edi, 0x305d
jg 0x404068
cmp edi, 0x26e8
jle 0x40423c
cmp edi, 0x2d11
jg 0x4043b0
cmp edi, 0x26e9
je 0x4045a2
cmp edi, 0x2cd6
jne 0x404e99
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x3c]
lea edx, [eax + ecx]
mov edi, esi
mov esi, dword [ebp - 0x28]
mov dword [esi], edx
mov esi, edi
cmp dword [eax + ecx], 0x4550
mov edi, 0x72ae
mov eax, 0x6952
jmp 0x404e19
cmp edi, 0x4dc7
jg 0x40409d
cmp edi, 0x491b
jle 0x404265
cmp edi, 0x4d05
jg 0x4043e4
cmp edi, 0x491c
mov dword [ebp - 0x14], esi
je 0x4045ba
cmp edi, 0x4ae1
jne 0x404e99
mov esi, ebx
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
mov eax, dword [ebp - 0x58]
mov ebx, dword [eax]
mov eax, dword [edi + 0x3c]
mov ecx, 0xf8
add eax, ecx
mov edx, 0x2cd6
cmp ebx, eax
jae 0x403fae
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, 0x3d6c
cmp dword [0x40f540], 0xa
jl 0x404619
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404619
mov eax, dword [edi + 0x3c]
mov ecx, 0xf8
add eax, ecx
cmp ebx, eax
jae 0x403f8e
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x403f8e
cmp edi, 0xf3d
jle 0x4040fb
cmp edi, 0x153b
jle 0x40429a
cmp edi, 0x1648
jg 0x40446f
cmp edi, 0x153c
je 0x404625
cmp edi, 0x1547
je 0x404358
jmp 0x404e99
cmp edi, 0x7a59
jle 0x4042d2
cmp edi, 0x7f95
jg 0x4044a8
cmp edi, 0x7a5a
je 0x40462f
cmp edi, 0x7e87
jne 0x404e99
mov eax, dword [ebp - 0x54]
inc dword [eax]
mov eax, dword [ebp - 0x30]
add dword [eax], 0x28
jmp 0x4040f1
cmp edi, 0x3b24
jle 0x404309
cmp edi, 0x41ba
jg 0x4044c5
cmp edi, 0x3b25
je 0x404644
cmp edi, 0x3d6c
je 0x404289
jmp 0x404e99
cmp edi, 0x5d02
jg 0x40432e
cmp edi, 0x54dd
jle 0x40456d
cmp edi, 0x54de
je 0x40465c
cmp edi, 0x5af1
jne 0x404e99
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
movzx ecx, word [eax + 0x14]
add ecx, eax
add ecx, 0x18
mov edx, dword [ebp - 0x30]
mov dword [edx], ecx
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 0x60]
mov dword [ecx], eax
mov eax, dword [ebp - 0x54]
mov dword [eax], 0
mov edi, 0x41bb
jmp 0x404e99
cmp edi, 0x1ea
jg 0x404362
cmp edi, 0x29
je 0x40475c
cmp edi, 0x99
mov dword [ebp - 0x20], ebx
je 0x404774
cmp edi, 0x124
jne 0x404e99
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov dword [ebp - 0x14], edx
push edx
push 4
push 0x3000
mov dword [ebp - 0x2c], eax
push eax
push 0
mov dword [ebp - 0x24], ecx
call ecx
add esp, 0x14
mov esi, eax
cmp dword [0x40f540], 0xa
jl 0x404801
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404801
mov edi, dword [ebp - 0x14]
push edi
mov eax, 4
push eax
mov eax, 0x3000
push eax
mov ebx, dword [ebp - 0x2c]
push ebx
xor eax, eax
push eax
mov esi, dword [ebp - 0x24]
call esi
add esp, 0x14
push edi
mov eax, 4
push eax
mov eax, 0x3000
push eax
push ebx
xor eax, eax
push eax
call esi
jmp 0x404150
cmp edi, 0x6443
je 0x404812
cmp edi, 0x66bb
je 0x404358
cmp edi, 0x6784
jne 0x404e99
push 0xc1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x1c], 0
cmp dword [0x40f540], 0xa
mov edi, 0x4e45
jl 0x404e26
mov dword [ebp - 0x14], esi
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404d10
mov esi, 0xc1
push esi
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
call edi
push esi
call edi
cmp dword [0x40f540], 0xa
jl 0x404d00
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404209
jmp 0x404d00
cmp edi, 0x1ad4
je 0x404882
cmp edi, 0x1e1f
je 0x40488e
cmp edi, 0x26a6
je 0x404358
jmp 0x404e99
cmp edi, 0x440d
je 0x4048fe
cmp edi, 0x4509
je 0x404908
cmp edi, 0x4823
jne 0x404e99
mov edi, 0x4e45
mov dword [ebp - 0x1c], 0
jmp 0x404e26
cmp edi, 0xf3e
je 0x404927
cmp edi, 0x1238
je 0x404995
cmp edi, 0x12db
jne 0x404e99
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x50]
mov dword [ecx], eax
mov edi, 0x153c
jmp 0x404e99
cmp edi, 0x701f
je 0x404a07
cmp edi, 0x72ae
je 0x404a50
cmp edi, 0x767d
jne 0x404e99
cmp dword [ebx + 0x14], 0
mov edi, 0x4509
mov eax, 0x1ad4
jmp 0x404e19
cmp edi, 0x305e
je 0x404abe
cmp edi, 0x390c
je 0x404b32
cmp edi, 0x39b3
je 0x404358
jmp 0x404e99
cmp edi, 0x5d03
je 0x404358
cmp edi, 0x5f90
je 0x404b71
cmp edi, 0x63cb
jne 0x404e99
mov edi, 0x7f96
jmp 0x404e99
mov edi, 0x7ff5
jmp 0x404e99
cmp edi, 0x1eb
je 0x404bdf
cmp edi, 0x74d
je 0x404bfb
cmp edi, 0xbb3
jne 0x404e99
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
jmp 0x404be9
cmp edi, 0x6df1
je 0x404c7b
cmp edi, 0x6e5d
je 0x40489e
jmp 0x404e99
cmp edi, 0x2d12
je 0x404d1b
cmp edi, 0x2ea6
jne 0x404e99
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x50]
cmp eax, dword [ecx]
mov edi, 0x153c
mov eax, 0x12db
cmova edi, eax
jmp 0x404e99
cmp edi, 0x4d06
je 0x404d3c
cmp edi, 0x4db7
jne 0x404e99
mov dword [ebx + 4], esi
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
movzx ecx, word [eax + 0x16]
shr ecx, 0xd
and ecx, 1
mov dword [ebx + 0x14], ecx
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ecx]
mov dword [ebx + 0x1c], ecx
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx]
mov dword [ebx + 0x20], ecx
mov ecx, dword [ebp - 0x70]
mov ecx, dword [ecx]
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebp - 0x74]
mov ecx, dword [ecx]
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0x78]
mov ecx, dword [ecx]
mov dword [ebx + 0x2c], ecx
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx]
mov dword [ebx + 0x34], ecx
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx + 4]
mov dword [ebx + 0x3c], ecx
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx]
mov edi, 0x54de
cmp ecx, dword [eax + 0x54]
jae 0x404e99
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, 0x1547
jmp 0x404e99
cmp edi, 0x1649
je 0x404e06
cmp edi, 0x18be
jne 0x404e99
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x40]
mov dword [ecx], eax
movzx eax, word [eax]
cmp eax, 0x5a4d
mov edi, 0x6784
mov eax, 0x4ae1
jmp 0x404e19
cmp edi, 0x7f96
je 0x404e1e
cmp edi, 0x7ff5
je 0x4048a8
jmp 0x404e99
cmp edi, 0x41bb
je 0x404e2e
cmp edi, 0x428b
jne 0x404e99
mov ecx, ebx
call fcn.0040519a
test eax, eax
mov edi, 0x701f
mov eax, 0x26a6
cmove edi, eax
cmp dword [0x40f540], 0xa
jl 0x404e99
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e99
mov ecx, ebx
call fcn.0040519a
mov ecx, ebx
call fcn.0040519a
cmp dword [0x40f540], 0xa
jl 0x40453b
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404514
mov ecx, ebx
call fcn.0040519a
cmp dword [0x40f540], 0xa
jl 0x40455c
mov ecx, dword [0x40f544]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x404514
test eax, eax
mov edi, 0x701f
mov eax, 0x26a6
jmp 0x404e19
cmp edi, 0x4dc8
jne 0x404ed0
mov dword [ebx + 0x18], 1
jmp 0x404c71
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
movzx eax, word [eax + 4]
cmp eax, 0x14c
mov edi, 0x5f90
mov eax, 0x1649
jmp 0x404e19
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
cmp dword [eax + 0x10], 0
mov edi, 0xbb3
mov eax, 0x1eb
jmp 0x404e19
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 0x40
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
cmp dword [0x40f540], 0xa
jl 0x404e4b
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e4b
mov esi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
call esi
mov edi, 0x40
push edi
mov ecx, 8
push ecx
push eax
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
call ebx
call esi
push edi
mov ecx, 8
push ecx
push eax
call ebx
jmp 0x4045cb
mov ebx, esi
mov esi, dword [ebp - 0x14]
mov edi, edx
jmp 0x404e99
mov edi, 0x7e87
jmp 0x404e99
mov eax, dword [ebx]
cmp dword [eax + 0x28], 0
mov edi, 0x767d
mov eax, 0x6bfc
jmp 0x404e19
mov dword [ebx + 0x10], 1
mov edi, 0x1e1f
mov dword [ebp - 0x18], 0
jmp 0x404e99
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], ebx
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x5c], ecx
push edx
push 4
push 0x1000
push dword [edi + 0x54]
mov esi, dword [ebp - 0x14]
push esi
call ecx
add esp, 0x14
mov edi, eax
mov eax, dword [ebp - 0x24]
push dword [eax + 0x54]
mov ebx, dword [ebp - 0x2c]
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x3c]
lea ecx, [edi + eax]
mov edx, dword [ebp - 0x20]
mov dword [edx], ecx
mov dword [edi + eax + 0x34], esi
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
mov esi, edx
mov ebx, dword [eax]
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
mov dword [ebp - 0x84], ecx
mov edx, ebx
push esi
push edi
call fcn.00404ef1
add esp, 8
cmp dword [0x40f540], 0xa
jl 0x404e5c
mov ecx, dword [0x40f544]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x404e5c
push dword [ebp - 0x38]
push 4
push 0x1000
push dword [edi + 0x54]
mov edi, dword [ebp - 0x14]
push edi
call dword [ebp - 0x5c]
add esp, 0x14
mov esi, eax
mov eax, dword [ebp - 0x24]
push dword [eax + 0x54]
mov dword [ebp - 0x80], ebx
mov ebx, dword [ebp - 0x2c]
push ebx
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x3c]
lea ecx, [esi + eax]
mov ebx, dword [ebp - 0x20]
mov dword [ebx], ecx
mov dword [esi + eax + 0x34], edi
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
push ebx
push edi
call fcn.00404ef1
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x5c]
add esp, 8
jmp 0x404682
mov eax, dword [ebp - 0x7c]
cmp byte [eax], 0
mov edi, 0x4823
mov eax, 0x18be
cmovne edi, eax
jmp 0x404e99
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x2c], edx
push edx
push 4
push 0x3000
mov dword [ebp - 0x38], esi
push esi
mov dword [ebp - 0x24], eax
push dword [eax + 0x34]
mov dword [ebp - 0x14], ecx
call ecx
add esp, 0x14
cmp dword [0x40f540], 0xa
jl 0x404e70
mov edx, dword [0x40f544]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
je 0x404e70
mov edi, dword [ebp - 0x2c]
push edi
mov eax, 4
push eax
mov eax, 0x3000
push eax
mov ebx, dword [ebp - 0x38]
push ebx
mov eax, dword [ebp - 0x24]
push dword [eax + 0x34]
mov esi, dword [ebp - 0x14]
call esi
add esp, 0x14
push edi
mov eax, 4
push eax
mov eax, 0x3000
push eax
push ebx
mov eax, dword [ebp - 0x24]
push dword [eax + 0x34]
call esi
jmp 0x4047a2
test esi, esi
mov edi, 0x440d
mov eax, 0x305e
jmp 0x404e7e
mov ecx, ebx
call fcn.00405059
test eax, eax
mov edi, 0x428b
mov eax, 0x66bb
cmove edi, eax
cmp dword [0x40f540], 0xa
jl 0x404e99
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e99
mov ecx, ebx
call fcn.00405059
mov ecx, ebx
call fcn.00405059
cmp dword [0x40f540], 0xa
jl 0x404871
mov ecx, dword [0x40f544]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x404849
test eax, eax
mov edi, 0x428b
mov eax, 0x66bb
jmp 0x404e19
mov eax, dword [ebx]
mov eax, dword [eax + 0x28]
add eax, esi
mov dword [ebx + 0x38], eax
jmp 0x40489e
cmp dword [ebp - 0x18], 5
je 0x4048a8
cmp dword [ebp - 0x18], 0
jne 0x404ed8
mov edi, 0x63cb
jmp 0x404e99
push ebx
call fcn.0040534b
add esp, 4
mov dword [ebp - 0x1c], 0
cmp dword [0x40f540], 0xa
mov edi, 0x4e45
jl 0x404e26
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e26
push ebx
call fcn.0040534b
add esp, 4
push ebx
call fcn.0040534b
add esp, 4
cmp dword [0x40f540], 0xa
jge 0x4048ca
jmp 0x404e26
mov edi, 0x491c
jmp 0x404e99
mov eax, dword [ebx]
mov eax, dword [eax + 0x28]
add eax, esi
push 0
push 1
push esi
call eax
test eax, eax
mov edi, 0x3b25
mov eax, 0x1238
jmp 0x404e19
push 0xc1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x1c], 0
cmp dword [0x40f540], 0xa
mov edi, 0x4e45
jl 0x404e26
mov dword [ebp - 0x14], esi
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404d10
mov esi, 0xc1
push esi
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
call edi
push esi
call edi
cmp dword [0x40f540], 0xa
jl 0x404d00
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404962
jmp 0x404d00
push 0x45a
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [0x40f540], 0xa
mov edi, 0x1e1f
mov dword [ebp - 0x18], 5
jl 0x404e99
mov dword [ebp - 0x14], esi
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e96
mov edi, 0x45a
push edi
mov esi, dword [sym.imp.KERNEL32.dll_SetLastError]
call esi
push edi
call esi
cmp dword [0x40f540], 0xa
jl 0x4049fa
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4049d0
mov esi, dword [ebp - 0x14]
mov edi, 0x1e1f
jmp 0x404e99
mov ecx, ebx
call fcn.00405316
cmp dword [0x40f540], 0xa
mov edi, 0x7a5a
jl 0x404e99
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e99
mov ecx, ebx
call fcn.00405316
mov ecx, ebx
call fcn.00405316
cmp dword [0x40f540], 0xa
jge 0x404a20
jmp 0x404e99
push 0xc1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x1c], 0
cmp dword [0x40f540], 0xa
mov edi, 0x4e45
jl 0x404e26
mov dword [ebp - 0x14], esi
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404d10
mov esi, 0xc1
push esi
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
call edi
push esi
call edi
cmp dword [0x40f540], 0xa
jl 0x404d00
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404a8b
jmp 0x404d00
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x1c], 0
cmp dword [0x40f540], 0xa
mov edi, 0x4e45
jl 0x404e26
mov dword [ebp - 0x14], esi
mov esi, ebx
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e8e
mov ebx, 0xe
push ebx
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
call edi
push ebx
call edi
cmp dword [0x40f540], 0xa
jl 0x404b22
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404af8
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov ebx, esi
mov esi, dword [ebp - 0x14]
jmp 0x404ec9
mov edi, esi
mov esi, dword [ebp - 0x64]
push esi
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
lea ecx, [eax - 1]
mov edx, dword [edx + 0x50]
add edx, ecx
neg eax
and edx, eax
mov esi, dword [ebp - 0x50]
add ecx, dword [esi]
mov esi, edi
and ecx, eax
cmp edx, ecx
mov eax, dword [ebp - 0x4c]
mov dword [eax], edx
mov edi, 0xf3e
mov eax, 0x99
jmp 0x404e19
push 0xc1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x1c], 0
cmp dword [0x40f540], 0xa
mov edi, 0x4e45
jl 0x404e26
mov dword [ebp - 0x14], esi
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404d10
mov esi, 0xc1
push esi
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
call edi
push esi
call edi
cmp dword [0x40f540], 0xa
jl 0x404d00
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404bac
jmp 0x404d00
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx]
add ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x3c]
mov dword [eax], ecx
mov edi, 0x2ea6
jmp 0x404e99
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x68]
mov edi, ebx
mov ebx, dword [eax]
mov ecx, edi
mov edx, ebx
call fcn.00404fd8
mov esi, edi
mov dword [edi + 0x18], eax
cmp dword [0x40f540], 0xa
mov edi, 0x6443
jl 0x404e94
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e94
mov edi, esi
mov ecx, esi
mov edx, ebx
call fcn.00404fd8
mov dword [esi + 0x18], eax
mov ecx, esi
mov edx, ebx
call fcn.00404fd8
mov dword [esi + 0x18], eax
cmp dword [0x40f540], 0xa
jl 0x404c6c
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404c39
mov ebx, esi
mov esi, dword [ebp - 0x14]
mov edi, 0x6443
jmp 0x404e99
push 0xc1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x1c], 0
cmp dword [0x40f540], 0xa
mov edi, 0x4e45
jl 0x404e26
mov dword [ebp - 0x14], esi
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404d10
mov esi, 0xc1
push esi
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
call edi
push esi
call edi
cmp dword [0x40f540], 0xa
jl 0x404cdc
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404cb2
push 0xc1
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [0x40f540], 0xa
jl 0x404d00
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404cb2
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov edi, 0x4e45
jmp 0x404e96
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
jmp 0x404e96
mov eax, dword [ebx]
mov eax, dword [eax + 0x34]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
sub eax, dword [ecx + 0x34]
mov ecx, dword [ebp - 0x68]
mov dword [ecx], eax
mov edi, 0x74d
mov eax, 0x4dc8
jmp 0x404e19
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
push eax
push 0x8000
push 0
push esi
mov dword [ebp - 0x24], ecx
call ecx
add esp, 0x10
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x1c], 0
cmp dword [0x40f540], 0xa
mov edi, 0x4e45
jl 0x404e83
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404e83
xor eax, eax
mov edi, dword [ebp - 0x2c]
push edi
mov ecx, 0x8000
push ecx
push eax
push esi
mov ebx, dword [ebp - 0x24]
call ebx
add esp, 0x10
mov eax, 0xe
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
mov eax, 0x8000
push eax
mov dword [ebp - 0x1c], 0
xor eax, eax
push eax
mov edi, esi
push esi
call ebx
add esp, 0x10
mov eax, 0xe
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [0x40f540], 0xa
jl 0x404ebe
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov esi, edi
jne 0x404d92
xor ebx, ebx
inc ebx
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x20]
jmp 0x404ec9
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
test byte [eax + 0x38], 1
mov edi, 0x6df1
mov eax, 0x5af1
cmove edi, eax
jmp 0x404e99
mov edi, 0x4e45
mov dword [ebp - 0x1c], ebx
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
jmp 0x404e99
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
movzx eax, word [eax + 6]
mov ecx, dword [ebp - 0x54]
cmp dword [ecx], eax
mov edi, 0x390c
mov eax, 0x26e9
cmovb edi, eax
jmp 0x404e99
test ebx, ebx
mov edi, 0x4db7
mov eax, 0x4d06
cmove edi, eax
jmp 0x404e96
test eax, eax
mov edi, 0x2d12
mov eax, 0x39b3
cmove edi, eax
mov ebx, dword [ebp - 0x20]
jmp 0x404e96
mov esi, eax
test eax, eax
mov edi, 0x491c
mov eax, 0x124
cmove edi, eax
jmp 0x404e89
xor ebx, ebx
inc ebx
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x20]
jmp 0x404e99
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov ebx, esi
mov esi, dword [ebp - 0x14]
mov eax, dword [0x40f544]
mov ecx, dword [0x40f540]
cmp ecx, 0xa
jl 0x403e5c
lea edx, [eax + 1]
imul edx, eax
and edx, 1
je 0x403e5c
jmp 0x404eef
xor ebx, ebx
inc ebx
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x20]
mov esi, edi
mov edi, 0x4e45
jmp 0x404e99
cmp edi, 0x4e45
jne 0x404e99
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040a7a1
mov eax, dword [ebp - 0x1c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x404eed
jmp 0x404eef