Function at 0x402cc0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d3f8f
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
push ebx
push esi
push edi
mov eax, dword [0x5000f4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], edi
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
push edi
push edi
push eax
call fcn.00427890
test al, al
jne 0x403b2c
push 0xdd
lea ecx, [ebp - 0x30]
call fcn.004412c0
mov byte [ebp - 4], 1
mov ebx, 1
mov dword [ebp - 0x18], ebx
mov ecx, esi
call fcn.004496d0
test al, al
jne 0x402d5f
push 0xde
lea ecx, [ebp - 0x50]
call fcn.004412c0
mov dword [ebp - 4], 2
mov dword [ebp - 0x18], 3
mov ecx, esi
call fcn.004496d0
mov ebx, dword [ebp - 0x18]
test al, al
mov byte [ebp - 0x19], 1
je 0x402d63
mov byte [ebp - 0x19], 0
mov dword [ebp - 4], 1
test bl, 2
je 0x402d7d
and ebx, 0xfffffffd
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x50]
call fcn.00405020
mov dword [ebp - 4], edi
test bl, 1
je 0x402d93
and ebx, 0xfffffffe
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x30]
call fcn.00405020
cmp byte [ebp - 0x19], 0
je 0x403b2c
push ecx
mov ecx, esp
mov dword [ebp - 0x58], esp
push esi
call fcn.00405450
mov byte [ebp - 4], 3
mov byte [ebp - 4], 0
call fcn.00426970
add esp, 4
test al, al
jne 0x403b2c
mov eax, dword [esi]
call fcn.00448cc0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 4
cmp eax, 0xffffffff
je 0x403b18
push eax
call fcn.0044a390
test al, al
jne 0x403b18
push esi
lea ecx, [ebp - 0x28]
call fcn.00405450
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x28]
call fcn.00405610
push 0x17
lea ecx, [ebp - 0x34]
call fcn.004412c0
mov byte [ebp - 4], 6
or ebx, 4
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
jne 0x402f8b
push 0x18
lea ecx, [ebp - 0x3c]
call fcn.004412c0
mov dword [ebp - 4], 7
or ebx, 8
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
jne 0x402f8b
push 0x19
lea ecx, [ebp - 0x44]
call fcn.004412c0
mov dword [ebp - 4], 8
or ebx, 0x10
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
jne 0x402f8b
push 0x1a
lea ecx, [ebp - 0x40]
call fcn.004412c0
mov dword [ebp - 4], 9
or ebx, 0x20
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
jne 0x402f8b
push 0x1b
lea ecx, [ebp - 0x48]
call fcn.004412c0
mov dword [ebp - 4], 0xa
or ebx, 0x40
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
jne 0x402f8b
push 0x1c
lea ecx, [ebp - 0x4c]
call fcn.004412c0
mov dword [ebp - 4], 0xb
or ebx, 0x80
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
jne 0x402f8b
push 0x1d
lea ecx, [ebp - 0x24]
call fcn.004412c0
mov dword [ebp - 4], 0xc
or ebx, 0x100
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
jne 0x402f8b
push 0x1e
lea ecx, [ebp - 0x2c]
call fcn.004412c0
mov dword [ebp - 4], 0xd
or ebx, 0x200
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
jne 0x402f8b
push 0x1f
lea ecx, [ebp - 0x38]
call fcn.004412c0
mov dword [ebp - 4], 0xe
or ebx, 0x400
mov dword [ebp - 0x18], ebx
mov eax, dword [eax]
push edi
push eax
lea ecx, [ebp - 0x28]
call fcn.004055d0
cmp eax, 0xffffffff
mov byte [ebp - 0x19], 0
je 0x402f8f
mov byte [ebp - 0x19], 1
mov dword [ebp - 4], 0xd
test ebx, 0x400
je 0x402faf
and ebx, 0xfffffbff
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x38]
call fcn.00405020
mov dword [ebp - 4], 0xc
test ebx, 0x200
je 0x402fcf
and ebx, 0xfffffdff
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x2c]
call fcn.00405020
mov dword [ebp - 4], 0xb
test ebx, 0x100
je 0x402fef
and ebx, 0xfffffeff
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x24]
call fcn.00405020
mov dword [ebp - 4], 0xa
test bl, bl
jns 0x40300b
and ebx, 0xffffff7f
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x4c]
call fcn.00405020
mov dword [ebp - 4], 9
test bl, 0x40
je 0x403025
and ebx, 0xffffffbf
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x48]
call fcn.00405020
mov dword [ebp - 4], 8
test bl, 0x20
je 0x40303f
and ebx, 0xffffffdf
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x40]
call fcn.00405020
mov dword [ebp - 4], 7
test bl, 0x10
je 0x403059
and ebx, 0xffffffef
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x44]
call fcn.00405020
mov dword [ebp - 4], 6
test bl, 8
je 0x403073
and ebx, 0xfffffff7
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x3c]
call fcn.00405020
mov dword [ebp - 4], 5
test bl, 4
je 0x40308d
and ebx, 0xfffffffb
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x34]
call fcn.00405020
cmp byte [ebp - 0x19], 0
jne 0x403b0c
lea ecx, [ebp - 0x2c]
call fcn.00404eb0
mov byte [ebp - 4], 0xf
mov byte [ebp - 4], 0x10
mov byte [ebp - 0x6c], 0
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x70], edi
lea edi, [ebp - 0x84]
mov ebx, dword [ebp - 0x30]
lea esi, [ebp - 0x64]
call fcn.004491d0
cmp byte [ebp - 0x58], 0
je 0x403116
cmp byte [ebp - 0x6c], 0
je 0x403116
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x70]
cmp ecx, edx
jb 0x4030f6
ja 0x4030ee
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x74]
jbe 0x4030f6
mov eax, dword [ebp - 0x84]
jmp 0x4030fb
mov eax, dword [ebp - 0x74]
mov ecx, edx
lea edx, [ebp - 0x2c]
push edx
push ecx
push eax
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x5c]
push edx
mov eax, dword [ebp + 0x18]
push eax
call fcn.0043e390
mov dword [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2c]
mov edi, 1
cmp dword [ecx - 0xc], edi
je 0x403b00
lea ecx, [ebp - 0x24]
call fcn.00404eb0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x38]
call fcn.00404eb0
mov byte [ebp - 4], 0x13
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x19], cl
mov byte [ebp + 0x1b], cl
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp + 0xc]
cmp dword [edx - 0xc], ecx
jne 0x403192
mov eax, dword [esi]
lea ecx, [ebp - 0x38]
push ecx
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 0x1b]
push ecx
lea edx, [ebp - 0x19]
push edx
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x5c]
push edx
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x30]
call fcn.0041f530
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x2c]
cmp dword [edx - 0xc], 0
je 0x4031db
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp - 0x38]
push eax
call fcn.00404f10
mov byte [ebp - 4], 0x14
push esi
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x2c]
call fcn.00403b60
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x403ae8
add dword [eax + 0x64], edi
jmp 0x403ae8
mov edi, dword [ebp + 0x10]
cmp byte [ebp + 0x1b], 0
jne 0x403363
test edi, edi
je 0x403363
cmp byte [ebp - 0x19], 0
je 0x403363
mov edx, dword [esi]
cmp dword [edx - 0xc], 0
je 0x403363
mov edx, ecx
or edx, eax
je 0x403363
mov edx, ecx
and edx, eax
cmp edx, 0xffffffff
je 0x403363
test eax, eax
ja 0x403363
jb 0x403233
cmp ecx, 0x3200000
jae 0x403363
push 0xad
lea ecx, [ebp - 0x30]
call fcn.004412c0
mov byte [ebp - 4], 0x15
mov esi, dword [ebp - 0x18]
or esi, 0x800
mov dword [ebp - 0x18], esi
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00449490
mov dword [ebp - 4], 0x16
or esi, 0x1000
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x24]
push ecx
call fcn.00405420
add esp, 0xc
test al, al
je 0x403366
push 0xae
lea ecx, [ebp - 0x48]
call fcn.004412c0
mov dword [ebp - 4], 0x17
or esi, 0x2000
mov dword [ebp - 0x18], esi
mov eax, dword [eax]
push eax
lea edx, [ebp - 0x40]
push edx
call fcn.00449490
mov dword [ebp - 4], 0x18
or esi, 0x4000
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x24]
push ecx
call fcn.00405420
add esp, 0xc
test al, al
je 0x403366
push 0xb0
lea ecx, [ebp - 0x44]
call fcn.004412c0
mov dword [ebp - 4], 0x19
or esi, 0x8000
mov dword [ebp - 0x18], esi
mov eax, dword [eax]
push eax
lea edx, [ebp - 0x3c]
push edx
call fcn.00449490
mov dword [ebp - 4], 0x1a
or esi, 0x10000
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x24]
push ecx
call fcn.00405420
add esp, 0xc
test al, al
je 0x403366
push 0xdf
lea ecx, [ebp - 0x34]
call fcn.004412c0
mov dword [ebp - 4], 0x1b
or esi, 0x20000
mov dword [ebp - 0x18], esi
mov eax, dword [eax]
push eax
lea edx, [ebp + 8]
push edx
call fcn.00449490
mov dword [ebp - 4], 0x1c
or esi, 0x40000
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x24]
push ecx
call fcn.00405420
add esp, 0xc
test al, al
je 0x403366
mov bl, 1
jmp 0x403368
mov esi, dword [ebp - 0x18]
xor bl, bl
mov dword [ebp - 4], 0x1b
test esi, 0x40000
je 0x403388
and esi, 0xfffbffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp + 8]
call fcn.00405020
mov dword [ebp - 4], 0x1a
test esi, 0x20000
je 0x4033a8
and esi, 0xfffdffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x34]
call fcn.00405020
mov dword [ebp - 4], 0x19
test esi, 0x10000
je 0x4033c8
and esi, 0xfffeffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x3c]
call fcn.00405020
mov dword [ebp - 4], 0x18
test esi, 0x8000
je 0x4033e8
and esi, 0xffff7fff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x44]
call fcn.00405020
mov dword [ebp - 4], 0x17
test esi, 0x4000
je 0x403408
and esi, 0xffffbfff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x40]
call fcn.00405020
mov dword [ebp - 4], 0x16
test esi, 0x2000
je 0x403428
and esi, 0xffffdfff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x48]
call fcn.00405020
mov dword [ebp - 4], 0x15
test esi, 0x1000
je 0x403448
and esi, 0xffffefff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x4c]
call fcn.00405020
mov dword [ebp - 4], 0x13
test esi, 0x800
je 0x403468
and esi, 0xfffff7ff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x30]
call fcn.00405020
test bl, bl
je 0x403ae1
push 0x4ebc84
lea ecx, [ebp + 8]
call fcn.004054b0
mov byte [ebp - 4], 0x1d
push 0xe0
lea ecx, [ebp - 0x34]
call fcn.004412c0
mov byte [ebp - 4], 0x1e
lea edx, [ebp + 8]
push edx
push 0x4ebc88
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00449e00
add esp, 0x10
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x34]
call fcn.00405020
mov byte [ebp - 4], 0x21
lea ecx, [ebp + 8]
call fcn.00405020
xor edi, edi
mov dword [ebp - 0x90], edi
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x6c]
sub ecx, dword [ebp - 0x70]
sar ecx, 2
cmp edi, ecx
jae 0x403547
mov edx, dword [ebp - 0x24]
cmp dword [edx - 0xc], 0
je 0x403517
push edi
lea ecx, [ebp - 0x7c]
call fcn.004063f0
mov eax, dword [eax]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00449490
mov byte [ebp - 4], 0x22
or esi, 0x80000
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x24]
push ecx
call fcn.004053f0
add esp, 0xc
test al, al
je 0x403517
mov bl, 1
jmp 0x403519
xor bl, bl
mov dword [ebp - 4], 0x21
test esi, 0x80000
je 0x403539
and esi, 0xfff7ffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp + 8]
call fcn.00405020
test bl, bl
jne 0x403ad3
inc edi
jmp 0x4034c2
xor al, al
jne 0x403ad3
cmp byte [ebp + 0x14], al
je 0x40384c
push 0x20
lea ecx, [ebp - 0x58]
call fcn.004412c0
mov byte [ebp - 4], 0x23
or esi, 0x100000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x21
lea ecx, [ebp - 0x9c]
call fcn.004412c0
mov dword [ebp - 4], 0x24
or esi, 0x200000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x22
lea ecx, [ebp - 0x94]
call fcn.004412c0
mov dword [ebp - 4], 0x25
or esi, 0x400000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x23
lea ecx, [ebp - 0x8c]
call fcn.004412c0
mov dword [ebp - 4], 0x26
or esi, 0x800000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x24
lea ecx, [ebp - 0xa8]
call fcn.004412c0
mov dword [ebp - 4], 0x27
or esi, 0x1000000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x25
lea ecx, [ebp - 0x98]
call fcn.004412c0
mov dword [ebp - 4], 0x28
or esi, 0x2000000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x26
lea ecx, [ebp - 0xa0]
call fcn.004412c0
mov dword [ebp - 4], 0x29
or esi, 0x4000000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x27
lea ecx, [ebp - 0x88]
call fcn.004412c0
mov dword [ebp - 4], 0x2a
or esi, 0x8000000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x28
lea ecx, [ebp - 0xac]
call fcn.004412c0
mov dword [ebp - 4], 0x2b
or esi, 0x10000000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x29
lea ecx, [ebp - 0xa4]
call fcn.004412c0
mov dword [ebp - 4], 0x2c
or esi, 0x20000000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x2a
lea ecx, [ebp - 0x30]
call fcn.004412c0
mov dword [ebp - 4], 0x2d
or esi, 0x40000000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x2b
lea ecx, [ebp - 0x4c]
call fcn.004412c0
mov dword [ebp - 4], 0x2e
or esi, 0x80000000
mov dword [ebp - 0x18], esi
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x2c
lea ecx, [ebp - 0x48]
call fcn.004412c0
mov dword [ebp - 4], 0x2f
or dword [ebp - 0x20], 1
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x2d
lea ecx, [ebp - 0x40]
call fcn.004412c0
mov dword [ebp - 4], 0x30
or dword [ebp - 0x20], 2
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x2e
lea ecx, [ebp - 0x44]
call fcn.004412c0
mov dword [ebp - 4], 0x31
or dword [ebp - 0x20], 4
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x2f
lea ecx, [ebp - 0x3c]
call fcn.004412c0
mov dword [ebp - 4], 0x32
or dword [ebp - 0x20], 8
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x30
lea ecx, [ebp - 0x34]
call fcn.004412c0
mov dword [ebp - 4], 0x33
or dword [ebp - 0x20], 0x10
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x31
lea ecx, [ebp + 8]
call fcn.004412c0
mov dword [ebp - 4], 0x34
or dword [ebp - 0x20], 0x20
mov edx, ebx
call fcn.00449710
test al, al
jne 0x403848
push 0x32
lea ecx, [ebp + 0x14]
call fcn.004412c0
mov dword [ebp - 4], 0x35
or dword [ebp - 0x20], 0x40
mov edx, ebx
call fcn.00449710
test al, al
je 0x40384c
xor bl, bl
jmp 0x40384e
mov bl, 1
mov dword [ebp - 4], 0x34
test byte [ebp - 0x20], 0x40
je 0x403867
and dword [ebp - 0x20], 0xffffffbf
lea ecx, [ebp + 0x14]
call fcn.00405020
mov dword [ebp - 4], 0x33
test byte [ebp - 0x20], 0x20
je 0x403880
and dword [ebp - 0x20], 0xffffffdf
lea ecx, [ebp + 8]
call fcn.00405020
mov dword [ebp - 4], 0x32
test byte [ebp - 0x20], 0x10
je 0x403899
and dword [ebp - 0x20], 0xffffffef
lea ecx, [ebp - 0x34]
call fcn.00405020
mov dword [ebp - 4], 0x31
test byte [ebp - 0x20], 8
je 0x4038b2
and dword [ebp - 0x20], 0xfffffff7
lea ecx, [ebp - 0x3c]
call fcn.00405020
mov dword [ebp - 4], 0x30
test byte [ebp - 0x20], 4
je 0x4038cb
and dword [ebp - 0x20], 0xfffffffb
lea ecx, [ebp - 0x44]
call fcn.00405020
mov dword [ebp - 4], 0x2f
test byte [ebp - 0x20], 2
je 0x4038e4
and dword [ebp - 0x20], 0xfffffffd
lea ecx, [ebp - 0x40]
call fcn.00405020
mov dword [ebp - 4], 0x2e
test byte [ebp - 0x20], 1
je 0x4038fd
and dword [ebp - 0x20], 0xfffffffe
lea ecx, [ebp - 0x48]
call fcn.00405020
mov dword [ebp - 4], 0x2d
test esi, esi
jns 0x403919
and esi, 0x7fffffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x4c]
call fcn.00405020
mov dword [ebp - 4], 0x2c
test esi, 0x40000000
je 0x403939
and esi, 0xbfffffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x30]
call fcn.00405020
mov dword [ebp - 4], 0x2b
test esi, 0x20000000
je 0x40395c
and esi, 0xdfffffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0xa4]
call fcn.00405020
mov dword [ebp - 4], 0x2a
test esi, 0x10000000
je 0x40397f
and esi, 0xefffffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0xac]
call fcn.00405020
mov dword [ebp - 4], 0x29
test esi, 0x8000000
je 0x4039a2
and esi, 0xf7ffffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x88]
call fcn.00405020
mov dword [ebp - 4], 0x28
test esi, 0x4000000
je 0x4039c5
and esi, 0xfbffffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0xa0]
call fcn.00405020
mov dword [ebp - 4], 0x27
test esi, 0x2000000
je 0x4039e8
and esi, 0xfdffffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x98]
call fcn.00405020
mov dword [ebp - 4], 0x26
test esi, 0x1000000
je 0x403a0b
and esi, 0xfeffffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0xa8]
call fcn.00405020
mov dword [ebp - 4], 0x25
test esi, 0x800000
je 0x403a2e
and esi, 0xff7fffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x8c]
call fcn.00405020
mov dword [ebp - 4], 0x24
test esi, 0x400000
je 0x403a51
and esi, 0xffbfffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x94]
call fcn.00405020
mov dword [ebp - 4], 0x23
test esi, 0x200000
je 0x403a74
and esi, 0xffdfffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x9c]
call fcn.00405020
mov dword [ebp - 4], 0x21
test esi, 0x100000
je 0x403a94
and esi, 0xffefffff
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x58]
call fcn.00405020
test bl, bl
je 0x403ad3
cmp byte [ebp + 0x1b], 0
mov eax, 0x4e4f2e
jne 0x403aa6
mov eax, dword [ebp - 0x24]
push eax
lea ecx, [ebp + 0x14]
call fcn.00404f70
mov byte [ebp - 4], 0x36
lea edx, [ebp + 0x14]
push edx
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov esi, dword [ebp + 0x10]
call fcn.004018e0
mov byte [ebp - 4], 0x21
lea ecx, [ebp + 0x14]
call fcn.00405020
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x7c]
call fcn.00406270
jmp 0x403ae8
test edi, edi
je 0x403ae8
inc dword [edi + 0x68]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x38]
call fcn.00405020
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x24]
call fcn.00405020
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call fcn.00405020
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x28]
call fcn.00405020
mov byte [ebp - 4], 0
cmp dword [ebp - 0x50], 0xffffffff
je 0x403b2c
mov edx, dword [ebp - 0x50]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14