Function at 0x401de0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b3922
mov eax, dword fs:[0]
push eax
sub esp, 0x21c
mov eax, dword [0x4e5070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x224], edx
mov esi, ecx
xor eax, eax
mov dword [ebp - 0x20c], 0
push 0x104
push eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x118]
push eax
call fcn.00498020
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [ebp - 0x118]
add esp, 0xc
push 0x104
push eax
push 0x6c
push esi
call edi
cmp byte [ebp - 0x118], 0
jne 0x401e67
xor ecx, ecx
jmp 0x401e79
lea ecx, [ebp - 0x118]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401e70
sub ecx, edx
push ecx
lea eax, [ebp - 0x118]
mov ecx, 0x4e9138
push eax
call fcn.00403a90
push 0x104
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.00498020
add esp, 0xc
lea eax, [ebp - 0x118]
push 0x104
push eax
push 0x6e
push esi
call edi
cmp byte [ebp - 0x118], 0
mov dword [ebp - 0x1f4], 0xf
mov dword [ebp - 0x1f8], 0
mov byte [ebp - 0x208], 0
jne 0x401eda
xor ecx, ecx
jmp 0x401eec
lea ecx, [ebp - 0x118]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401ee3
sub ecx, edx
push ecx
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x208]
call fcn.00403a90
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x208]
cmp dword [ebp - 0x1f4], 0x10
mov eax, 1
mov ebx, dword [ebp - 0x1f8]
mov edx, 0x4c5dec
cmovae ecx, dword [ebp - 0x208]
cmp ebx, eax
cmovb eax, ebx
push eax
call fcn.00401500
add esp, 4
test eax, eax
jne 0x401f55
cmp ebx, 1
lea ebx, [eax + 1]
jb 0x401f5a
movzx eax, byte [0x4e8ff1]
cmovbe eax, ebx
mov byte [0x4e8ff1], al
jmp 0x401f5a
mov ebx, 1
push 0x104
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.00498020
add esp, 0xc
lea eax, [ebp - 0x118]
push 0x104
push eax
push 0x6d
push esi
call edi
cmp byte [ebp - 0x118], 0
mov dword [ebp - 0x1c4], 0xf
mov dword [ebp - 0x1c8], 0
mov byte [ebp - 0x1d8], 0
jne 0x401fa9
xor ecx, ecx
jmp 0x401fbb
lea ecx, [ebp - 0x118]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401fb2
sub ecx, edx
push ecx
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x1d8]
call fcn.00403a90
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1d8]
cmp dword [ebp - 0x1c4], 0x10
mov eax, ebx
mov ebx, dword [ebp - 0x1c8]
mov edx, 0x4c5dec
cmovae ecx, dword [ebp - 0x1d8]
cmp ebx, 1
cmovb eax, ebx
push eax
call fcn.00401500
add esp, 4
test eax, eax
jne 0x40201f
cmp ebx, 1
lea ebx, [eax + 1]
jb 0x402024
movzx eax, byte [0x4e8ff3]
cmovbe eax, ebx
mov byte [0x4e8ff3], al
jmp 0x402024
mov ebx, 1
push 0x104
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.00498020
add esp, 0xc
lea eax, [ebp - 0x118]
push 0x104
push eax
push 0x71
push esi
call edi
cmp byte [ebp - 0x118], 0
mov dword [ebp - 0x1ac], 0xf
mov dword [ebp - 0x1b0], 0
mov byte [ebp - 0x1c0], 0
jne 0x402073
xor ecx, ecx
jmp 0x402089
lea ecx, [ebp - 0x118]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402080
sub ecx, edx
push ecx
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x1c0]
call fcn.00403a90
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c0]
cmp dword [ebp - 0x1ac], 0x10
mov eax, ebx
mov ebx, dword [ebp - 0x1b0]
mov edx, 0x4c5dec
cmovae ecx, dword [ebp - 0x1c0]
cmp ebx, 1
cmovb eax, ebx
push eax
call fcn.00401500
add esp, 4
test eax, eax
jne 0x4020ed
cmp ebx, 1
lea ebx, [eax + 1]
jb 0x4020f2
movzx eax, byte [0x4e8ff0]
cmovbe eax, ebx
mov byte [0x4e8ff0], al
jmp 0x4020f2
mov ebx, 1
push 0x104
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.00498020
add esp, 0xc
lea eax, [ebp - 0x118]
push 0x104
push eax
push 0x72
push esi
call edi
cmp byte [ebp - 0x118], 0
mov dword [ebp - 0x194], 0xf
mov dword [ebp - 0x198], 0
mov byte [ebp - 0x1a8], 0
jne 0x402141
xor ecx, ecx
jmp 0x402159
lea ecx, [ebp - 0x118]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402150
sub ecx, edx
push ecx
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x1a8]
call fcn.00403a90
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1a8]
cmp dword [ebp - 0x194], 0x10
mov eax, ebx
mov ebx, dword [ebp - 0x198]
mov edx, 0x4c5dec
cmovae ecx, dword [ebp - 0x1a8]
cmp ebx, 1
cmovb eax, ebx
push eax
call fcn.00401500
add esp, 4
test eax, eax
jne 0x4021bd
cmp ebx, 1
jb 0x4021bd
movzx eax, byte [0x4e8ff2]
mov ecx, 1
cmovbe eax, ecx
mov byte [0x4e8ff2], al
push 0x104
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.00498020
add esp, 0xc
lea eax, [ebp - 0x118]
push 0x40
push eax
push 0x6b
push esi
call edi
cmp byte [ebp - 0x118], 0
jne 0x4021ee
xor ecx, ecx
jmp 0x402200
lea ecx, [ebp - 0x118]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4021f7
sub ecx, edx
push ecx
lea eax, [ebp - 0x118]
mov ecx, 0x4e9120
push eax
call fcn.00403a90
sub esp, 0x18
mov edx, esp
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x14], 7
cmp dword [edx + 0x14], 8
mov dword [edx + 0x10], 0
jb 0x40223d
mov eax, dword [edx]
jmp 0x40223f
mov eax, edx
mov ebx, dword [ebp - 0x224]
xor ecx, ecx
mov word [eax], cx
cmp word [ebx], cx
je 0x402263
mov ecx, ebx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402254
sub ecx, esi
sar ecx, 1
push ecx
push ebx
mov ecx, edx
call fcn.004036e0
lea ecx, [ebp - 0x218]
call fcn.004015c0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x160]
push 6
xor eax, eax
mov dword [ebp - 0x14c], 7
push 0x4c5df0
mov dword [ebp - 0x150], 0
mov word [ebp - 0x160], ax
call fcn.004036e0
lea eax, [ebp - 0x160]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x20c], 1
push eax
lea ecx, [ebp - 0x218]
call fcn.00401700
mov ecx, eax
mov dword [ebp - 4], 6
lea edi, [ecx + 0x10]
cmp dword [ecx + 0x14], 8
mov ebx, 3
mov dword [ebp - 0x20c], ebx
jb 0x4022f0
mov ecx, dword [ecx]
mov edi, dword [edi]
mov esi, 4
cmp edi, esi
cmovb esi, edi
test esi, esi
je 0x402327
mov edx, str.true
nop word [eax + eax]
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x402469
add ecx, 2
add edx, 2
sub esi, 1
jne 0x402310
xor eax, eax
test eax, eax
jne 0x402338
cmp edi, 4
jb 0x402338
jbe 0x402460
push 0x4c5df0
lea ecx, [ebp - 0x190]
call fcn.004031c0
lea eax, [ebp - 0x190]
mov dword [ebp - 4], 7
push eax
lea eax, [ebp - 0x148]
mov dword [ebp - 0x20c], 7
push eax
lea ecx, [ebp - 0x218]
call fcn.00401700
mov ecx, eax
mov dword [ebp - 4], 8
lea edi, [ecx + 0x10]
cmp dword [ecx + 0x14], 8
mov ebx, 0xf
mov dword [ebp - 0x20c], ebx
jb 0x402391
mov ecx, dword [ecx]
mov edi, dword [edi]
mov esi, 1
cmp edi, esi
cmovb esi, edi
test esi, esi
je 0x4023c7
mov edx, 0x4c5e0c
nop word [eax + eax]
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x40247a
add ecx, 2
add edx, 2
sub esi, 1
jne 0x4023b0
xor eax, eax
test eax, eax
jne 0x4023d8
cmp edi, 1
jb 0x4023d8
jbe 0x402460
push 0x4c5df0
lea ecx, [ebp - 0x178]
call fcn.004031c0
lea eax, [ebp - 0x178]
mov dword [ebp - 4], 9
push eax
lea eax, [ebp - 0x130]
mov dword [ebp - 0x20c], 0x1f
push eax
lea ecx, [ebp - 0x218]
call fcn.00401700
mov ecx, eax
mov ebx, 0x3f
cmp dword [ecx + 0x14], 8
lea edi, [ecx + 0x10]
jb 0x402424
mov ecx, dword [ecx]
mov edi, dword [edi]
mov esi, 1
cmp edi, esi
cmovb esi, edi
test esi, esi
je 0x402453
mov edx, 0x4c5e10
nop dword [eax]
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x40248b
add ecx, 2
add edx, 2
sub esi, 1
jne 0x402440
xor eax, eax
test eax, eax
jne 0x402499
cmp edi, 1
jb 0x402499
ja 0x402499
mov byte [ebp - 0x20d], 1
jmp 0x4024a0
movzx eax, word [ecx]
cmp ax, word [edx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x402329
movzx eax, word [ecx]
cmp ax, word [edx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4023c9
movzx eax, word [ecx]
cmp ax, word [edx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x402455
mov byte [ebp - 0x20d], 0
test bl, 0x20
je 0x4024e3
mov eax, dword [ebp - 0x11c]
and ebx, 0xffffffdf
cmp eax, 8
jb 0x4024c6
inc eax
lea ecx, [ebp - 0x130]
push eax
push dword [ebp - 0x130]
call fcn.00404770
xor eax, eax
mov dword [ebp - 0x11c], 7
mov dword [ebp - 0x120], 0
mov word [ebp - 0x130], ax
test bl, 0x10
je 0x402526
mov eax, dword [ebp - 0x164]
and ebx, 0xffffffef
cmp eax, 8
jb 0x402509
inc eax
lea ecx, [ebp - 0x178]
push eax
push dword [ebp - 0x178]
call fcn.00404770
xor eax, eax
mov dword [ebp - 0x164], 7
mov dword [ebp - 0x168], 0
mov word [ebp - 0x178], ax
test bl, 8
je 0x402569
mov eax, dword [ebp - 0x134]
and ebx, 0xfffffff7
cmp eax, 8
jb 0x40254c
inc eax
lea ecx, [ebp - 0x148]
push eax
push dword [ebp - 0x148]
call fcn.00404770
xor eax, eax
mov dword [ebp - 0x134], 7
mov dword [ebp - 0x138], 0
mov word [ebp - 0x148], ax
test bl, 4
je 0x4025ac
mov eax, dword [ebp - 0x17c]
and ebx, 0xfffffffb
cmp eax, 8
jb 0x40258f
inc eax
lea ecx, [ebp - 0x190]
push eax
push dword [ebp - 0x190]
call fcn.00404770
xor eax, eax
mov dword [ebp - 0x17c], 7
mov dword [ebp - 0x180], 0
mov word [ebp - 0x190], ax
lea ecx, [ebp - 0x1f0]
and ebx, 0xfffffffd
call fcn.00403100
lea ecx, [ebp - 0x160]
mov dword [ebp - 4], 4
and ebx, 0xfffffffe
call fcn.00403100
movzx eax, byte [0x4e8ff1]
mov ecx, 1
cmp byte [ebp - 0x20d], 0
mov esi, ebx
push 0x4c5df0
cmovne eax, ecx
lea ecx, [ebp - 0x130]
mov byte [0x4e8ff1], al
call fcn.004031c0
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x178]
or ebx, 0x40
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], ebx
call fcn.00401700
or esi, 0xc0
mov dword [ebp - 4], 0xb
mov edx, eax
mov dword [ebp - 0x20c], esi
mov ecx, 0x4c5e14
mov edi, esi
call fcn.004049f0
test al, al
jne 0x402706
push 0x4c5df0
lea ecx, [ebp - 0x148]
call fcn.004031c0
lea eax, [ebp - 0x148]
mov dword [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x190]
or esi, 0x100
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], esi
call fcn.00401700
mov esi, edi
mov dword [ebp - 4], 0xd
or esi, 0x300
mov edx, eax
mov ecx, 0x4c5e20
mov dword [ebp - 0x20c], esi
mov edi, esi
call fcn.004049f0
test al, al
jne 0x402706
push 0x4c5df0
lea ecx, [ebp - 0x160]
call fcn.004031c0
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x1f0]
or esi, 0x400
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], esi
call fcn.00401700
mov esi, edi
mov edx, eax
mov ecx, 0x4c5e24
or esi, 0xc00
call fcn.004049f0
test al, al
jne 0x402706
xor bl, bl
jmp 0x402708
mov bl, 1
test esi, 0x800
je 0x402721
lea ecx, [ebp - 0x1f0]
and esi, 0xfffff7ff
call fcn.00403100
test esi, 0x400
je 0x40273a
lea ecx, [ebp - 0x160]
and esi, 0xfffffbff
call fcn.00403100
test esi, 0x200
je 0x402753
lea ecx, [ebp - 0x190]
and esi, 0xfffffdff
call fcn.00403100
test esi, 0x100
je 0x40276c
lea ecx, [ebp - 0x148]
and esi, 0xfffffeff
call fcn.00403100
lea ecx, [ebp - 0x178]
and esi, 0xffffff7f
call fcn.00403100
lea ecx, [ebp - 0x130]
mov dword [ebp - 4], 4
and esi, 0xffffffbf
call fcn.00403100
movzx eax, byte [0x4e8ff1]
xor ecx, ecx
test bl, bl
mov edi, esi
push 0x4c5e28
cmovne eax, ecx
lea ecx, [ebp - 0x130]
mov byte [0x4e8ff1], al
call fcn.004031c0
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0xf
push eax
lea eax, [ebp - 0x178]
or esi, 0x1000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], esi
call fcn.00401700
or edi, 0x3000
mov dword [ebp - 4], 0x10
mov edx, eax
mov dword [ebp - 0x20c], edi
mov ecx, str.true
mov esi, edi
call fcn.004049f0
test al, al
jne 0x4028c4
push 0x4c5e28
lea ecx, [ebp - 0x148]
call fcn.004031c0
lea eax, [ebp - 0x148]
mov dword [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x190]
or edi, 0x4000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], edi
call fcn.00401700
mov edi, esi
mov dword [ebp - 4], 0x12
or edi, 0xc000
mov edx, eax
mov ecx, 0x4c5e0c
mov dword [ebp - 0x20c], edi
mov esi, edi
call fcn.004049f0
test al, al
jne 0x4028c4
push 0x4c5e28
lea ecx, [ebp - 0x160]
call fcn.004031c0
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x1f0]
or edi, 0x10000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], edi
call fcn.00401700
mov edi, esi
mov edx, eax
mov ecx, 0x4c5e10
or edi, 0x30000
call fcn.004049f0
test al, al
jne 0x4028c4
xor bl, bl
jmp 0x4028c6
mov bl, 1
test edi, 0x20000
je 0x4028df
lea ecx, [ebp - 0x1f0]
and edi, 0xfffdffff
call fcn.00403100
test edi, 0x10000
je 0x4028f8
lea ecx, [ebp - 0x160]
and edi, 0xfffeffff
call fcn.00403100
test edi, 0x8000
je 0x402911
lea ecx, [ebp - 0x190]
and edi, 0xffff7fff
call fcn.00403100
test edi, 0x4000
je 0x40292a
lea ecx, [ebp - 0x148]
and edi, 0xffffbfff
call fcn.00403100
lea ecx, [ebp - 0x178]
and edi, 0xffffdfff
call fcn.00403100
lea ecx, [ebp - 0x130]
mov dword [ebp - 4], 4
and edi, 0xffffefff
call fcn.00403100
movzx eax, byte [0x4e8ff3]
test bl, bl
mov ecx, 1
mov esi, edi
cmovne eax, ecx
lea ecx, [ebp - 0x130]
push 0x4c5e28
mov byte [0x4e8ff3], al
call fcn.004031c0
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0x14
push eax
lea eax, [ebp - 0x178]
or edi, 0x40000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], edi
call fcn.00401700
or esi, 0xc0000
mov dword [ebp - 4], 0x15
mov edx, eax
mov dword [ebp - 0x20c], esi
mov ecx, 0x4c5e14
mov edi, esi
call fcn.004049f0
test al, al
jne 0x402a88
push 0x4c5e28
lea ecx, [ebp - 0x148]
call fcn.004031c0
lea eax, [ebp - 0x148]
mov dword [ebp - 4], 0x16
push eax
lea eax, [ebp - 0x190]
or esi, 0x100000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], esi
call fcn.00401700
mov esi, edi
mov dword [ebp - 4], 0x17
or esi, 0x300000
mov edx, eax
mov ecx, 0x4c5e20
mov dword [ebp - 0x20c], esi
mov edi, esi
call fcn.004049f0
test al, al
jne 0x402a88
push 0x4c5e28
lea ecx, [ebp - 0x160]
call fcn.004031c0
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0x18
push eax
lea eax, [ebp - 0x1f0]
or esi, 0x400000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], esi
call fcn.00401700
mov esi, edi
mov edx, eax
mov ecx, 0x4c5e24
or esi, 0xc00000
call fcn.004049f0
test al, al
jne 0x402a88
xor bl, bl
jmp 0x402a8a
mov bl, 1
test esi, 0x800000
je 0x402aa3
lea ecx, [ebp - 0x1f0]
and esi, 0xff7fffff
call fcn.00403100
test esi, 0x400000
je 0x402abc
lea ecx, [ebp - 0x160]
and esi, 0xffbfffff
call fcn.00403100
test esi, 0x200000
je 0x402ad5
lea ecx, [ebp - 0x190]
and esi, 0xffdfffff
call fcn.00403100
test esi, 0x100000
je 0x402aee
lea ecx, [ebp - 0x148]
and esi, 0xffefffff
call fcn.00403100
lea ecx, [ebp - 0x178]
and esi, 0xfff7ffff
call fcn.00403100
lea ecx, [ebp - 0x130]
mov dword [ebp - 4], 4
and esi, 0xfffbffff
call fcn.00403100
movzx eax, byte [0x4e8ff3]
xor ecx, ecx
test bl, bl
mov edi, esi
push 0x4c5e34
cmovne eax, ecx
lea ecx, [ebp - 0x130]
mov byte [0x4e8ff3], al
call fcn.004031c0
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x178]
or esi, 0x1000000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], esi
call fcn.00401700
or edi, 0x3000000
mov dword [ebp - 4], 0x1a
mov edx, eax
mov dword [ebp - 0x20c], edi
mov ecx, str.true
mov esi, edi
call fcn.004049f0
test al, al
jne 0x402c49
push 0x4c5e34
lea ecx, [ebp - 0x148]
call fcn.004031c0
lea eax, [ebp - 0x148]
mov dword [ebp - 4], 0x1b
push eax
lea eax, [ebp - 0x190]
or edi, 0x4000000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], edi
call fcn.00401700
mov edi, esi
mov dword [ebp - 4], 0x1c
or edi, 0xc000000
mov edx, eax
mov ecx, 0x4c5e0c
mov dword [ebp - 0x20c], edi
mov esi, edi
call fcn.004049f0
test al, al
jne 0x402c49
push 0x4c5e34
lea ecx, [ebp - 0x160]
call fcn.004031c0
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0x1d
push eax
lea eax, [ebp - 0x1f0]
or edi, 0x10000000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], edi
call fcn.00401700
mov edi, esi
mov edx, eax
mov ecx, 0x4c5e10
or edi, 0x30000000
call fcn.004049f0
test al, al
jne 0x402c49
xor bl, bl
jmp 0x402c4b
mov bl, 1
test edi, 0x20000000
je 0x402c64
lea ecx, [ebp - 0x1f0]
and edi, 0xdfffffff
call fcn.00403100
test edi, 0x10000000
je 0x402c7d
lea ecx, [ebp - 0x160]
and edi, 0xefffffff
call fcn.00403100
test edi, 0x8000000
je 0x402c96
lea ecx, [ebp - 0x190]
and edi, 0xf7ffffff
call fcn.00403100
test edi, 0x4000000
je 0x402caf
lea ecx, [ebp - 0x148]
and edi, 0xfbffffff
call fcn.00403100
lea ecx, [ebp - 0x178]
and edi, 0xfdffffff
call fcn.00403100
lea ecx, [ebp - 0x130]
mov dword [ebp - 4], 4
and edi, 0xfeffffff
call fcn.00403100
movzx eax, byte [0x4e8ff0]
test bl, bl
mov ecx, 1
mov esi, edi
cmovne eax, ecx
lea ecx, [ebp - 0x130]
push 0x4c5e34
mov byte [0x4e8ff0], al
call fcn.004031c0
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0x1e
push eax
lea eax, [ebp - 0x178]
or edi, 0x40000000
push eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x20c], edi
call fcn.00401700
mov dword [ebp - 4], 0x1f
or esi, 0xc0000000
mov edx, eax
mov dword [ebp - 0x20c], esi
mov ecx, 0x4c5e14
call fcn.004049f0
test al, al
jne 0x402e03
push 0x4c5e34
lea ecx, [ebp - 0x148]
call fcn.004031c0
lea eax, [ebp - 0x148]
mov dword [ebp - 4], 0x20
push eax
lea eax, [ebp - 0x190]
mov dword [ebp - 0x21c], 1
push eax
lea ecx, [ebp - 0x218]
call fcn.00401700
mov dword [ebp - 4], 0x21
mov ebx, 3
mov edx, eax
mov dword [ebp - 0x21c], ebx
mov ecx, 0x4c5e20
call fcn.004049f0
test al, al
jne 0x402e09
push 0x4c5e34
lea ecx, [ebp - 0x160]
call fcn.004031c0
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0x22
push eax
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x21c], 7
push eax
lea ecx, [ebp - 0x218]
call fcn.00401700
mov edx, eax
mov ecx, 0x4c5e24
mov ebx, 0xf
call fcn.004049f0
test al, al
jne 0x402e09
mov byte [ebp - 0x20d], al
jmp 0x402e10
mov ebx, dword [ebp - 0x220]
mov byte [ebp - 0x20d], 1
test bl, 8
je 0x402e23
lea ecx, [ebp - 0x1f0]
and ebx, 0xfffffff7
call fcn.00403100
test bl, 4
je 0x402e36
lea ecx, [ebp - 0x160]
and ebx, 0xfffffffb
call fcn.00403100
test bl, 2
je 0x402e49
lea ecx, [ebp - 0x190]
and ebx, 0xfffffffd
call fcn.00403100
test bl, 1
je 0x402e59
lea ecx, [ebp - 0x148]
call fcn.00403100
lea ecx, [ebp - 0x178]
call fcn.00403100
lea ecx, [ebp - 0x130]
mov dword [ebp - 4], 4
call fcn.00403100
movzx eax, byte [0x4e8ff0]
xor ecx, ecx
cmp byte [ebp - 0x20d], cl
push str.path
cmovne eax, ecx
lea ecx, [ebp - 0x160]
mov byte [0x4e8ff0], al
call fcn.004031c0
lea eax, [ebp - 0x160]
mov byte [ebp - 4], 0x23
push eax
lea eax, [ebp - 0x130]
push eax
lea ecx, [ebp - 0x218]
call fcn.00401700
mov edx, eax
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x148]
call fcn.004109f0
push eax
mov ecx, 0x4e9108
call fcn.004032a0
mov eax, dword [ebp - 0x134]
cmp eax, 0x10
jb 0x402ef4
inc eax
lea ecx, [ebp - 0x148]
push eax
push dword [ebp - 0x148]
call fcn.00403e20
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x134], 0xf
mov dword [ebp - 0x138], 0
mov byte [ebp - 0x148], 0
cmp eax, 8
jb 0x402f2d
inc eax
lea ecx, [ebp - 0x130]
push eax
push dword [ebp - 0x130]
call fcn.00404770
xor eax, eax
mov dword [ebp - 0x11c], 7
mov word [ebp - 0x130], ax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x120], 0
cmp eax, 8
jb 0x402f68
inc eax
lea ecx, [ebp - 0x160]
push eax
push dword [ebp - 0x160]
call fcn.00404770
mov eax, dword [ebp - 0x218]
lea ecx, [ebp - 0x218]
push eax
push dword [eax]
lea eax, [ebp - 0x220]
push eax
call fcn.00403d30
push 0x40
push 1
push dword [ebp - 0x218]
call fcn.00401560
mov eax, dword [ebp - 0x194]
add esp, 0xc
cmp eax, 0x10
jb 0x402fb3
inc eax
lea ecx, [ebp - 0x1a8]
push eax
push dword [ebp - 0x1a8]
call fcn.00403e20
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x194], 0xf
mov dword [ebp - 0x198], 0
mov byte [ebp - 0x1a8], 0
cmp eax, 0x10
jb 0x402fec
inc eax
lea ecx, [ebp - 0x1c0]
push eax
push dword [ebp - 0x1c0]
call fcn.00403e20
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x1ac], 0xf
mov dword [ebp - 0x1b0], 0
mov byte [ebp - 0x1c0], 0
cmp eax, 0x10
jb 0x403025
inc eax
lea ecx, [ebp - 0x1d8]
push eax
push dword [ebp - 0x1d8]
call fcn.00403e20
lea ecx, [ebp - 0x208]
mov dword [ebp - 0x1c4], 0xf
mov dword [ebp - 0x1c8], 0
mov byte [ebp - 0x1d8], 0
call fcn.00403260
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00493122
mov esp, ebp
pop ebp
ret