Function at 0x40de70
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x130
push ebx
xor ebx, ebx
push esi
xor esi, esi
inc ebx
cmp dword [ebp + 0x7c], 2
push edi
mov byte [ebp + 0x67], 0
jne 0x40dea2
cmp byte [0x4673a5], 0
mov dword [ebp + 0x7c], ebx
jne 0x40dea2
mov byte [0x4673a5], bl
mov byte [ebp + 0x67], bl
cmp dword [0x4681f0], esi
je 0x40deb5
push esi
mov ecx, 0x4681d8
call fcn.0044347a
cmp dword [ebp + 0x78], 0x8000012f
push 0xa
pop edi
jne 0x40deca
mov dword [ebp + 0x78], edi
mov byte [ebp + 0x38], 1
jmp 0x40ded8
cmp dword [ebp + 0x78], 5
setle byte [ebp + 0x38]
cmp byte [ebp + 0x38], 0
je 0x40dedd
mov dword [ebp + 0x18], esi
jmp 0x40dee6
call dword [0x45a26c]
mov dword [ebp + 0x18], eax
cmp dword [0x4693dc], esi
je 0x40def3
call fcn.0040ef81
cmp dword [0x468158], esi
mov byte [ebp + 0x6f], 0
je 0x40df0c
call fcn.0040dcee
test al, al
je 0x40df0c
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x78], esi
jle 0x40e0e1
cmp dword [ebp + 0x7c], ebx
jne 0x40e0e1
inc dword [0x4673b4]
cmp byte [0x46739f], 0
mov byte [ebp + 0x66], 1
jne 0x40df4b
push esi
push edi
push 9
push dword [0x467254]
call dword [0x45a4bc]
test eax, eax
setne al
mov byte [0x46739f], al
mov ebx, dword [ebp + 0x78]
mov byte [ebp + 0x63], 0
mov byte [ebp + 0x65], 0
mov esi, dword [0x45a26c]
call esi
cmp dword [ebp + 0x78], 0
mov edi, eax
jle 0x40e0ea
cmp byte [ebp + 0x65], 0
jne 0x40e0ea
cmp byte [0x4673a5], 0
jne 0x40e0f7
call fcn.0040de0e
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0
push 0
lea eax, [ebp + 0x40]
push eax
call dword [0x45a4c0]
cmp eax, 0xffffffff
je 0x40df56
call esi
mov ecx, eax
sub ecx, edi
cmp ecx, 3
jbe 0x40dfb8
mov dword [0x4681a8], eax
cmp dword [0x467b64], 0
je 0x40dfe5
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x40]
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
call fcn.0040d93f
add esp, 0x18
test al, al
jne 0x40df56
cmp dword [0x46b3fc], 0
je 0x40e463
mov eax, dword [ebp + 0x40]
test eax, eax
je 0x40e463
cmp eax, dword [0x467254]
je 0x40e463
cmp dword [ebp + 0x44], 0x414
je 0x40e463
cmp dword [ebp + 0x44], 0x402
je 0x40e463
cmp dword [ebp + 0x44], 0x100
jne 0x40e400
mov eax, dword [ebp + 0x48]
cmp eax, 0x22
je 0x40e050
cmp eax, 0x21
je 0x40e050
cmp eax, 9
je 0x40e050
cmp eax, 0x25
je 0x40e050
cmp eax, 0x27
jne 0x40e331
call dword [0x45a4c4]
mov esi, eax
test esi, esi
je 0x40e331
push esi
call fcn.0043b74c
test eax, eax
pop ecx
je 0x40e331
push eax
call fcn.00432620
mov ebx, eax
test ebx, ebx
pop ecx
je 0x40e331
cmp byte [ebx + 0x54], 0
je 0x40e331
push 0
push esi
mov ecx, ebx
call fcn.004325c1
mov edi, eax
test edi, edi
mov dword [ebp + 0x68], edi
je 0x40e331
mov al, byte [edi + 4]
cmp al, 0xf
je 0x40e331
xor esi, esi
cmp al, 0x13
mov eax, dword [ebp + 0x48]
jne 0x40e2b1
cmp eax, 0x25
mov esi, edi
je 0x40e0c9
cmp eax, 0x27
jne 0x40e2b1
cmp eax, 0x27
sete al
push 0
push 0
push eax
push edi
mov ecx, ebx
call fcn.00435c8c
jmp 0x40df56
mov byte [ebp + 0x66], 0
jmp 0x40df4b
cmp byte [0x4673a5], 0
je 0x40e22e
call dword [0x45a4c8]
mov esi, eax
test esi, esi
je 0x40e22e
push 0
push esi
call dword [0x45a4cc]
cmp eax, dword [0x467c9c]
jne 0x40e22e
cmp dword [0x4673d8], 0
je 0x40e14d
push 0x20
lea eax, [ebp - 0x40]
push eax
push esi
call dword [0x45a4d0]
lea eax, [ebp - 0x40]
push str.32770
push eax
call fcn.00457670
neg eax
sbb al, al
pop ecx
inc al
pop ecx
mov byte [ebp + 0x17], al
jne 0x40e194
call dword [0x45a4c4]
test eax, eax
je 0x40e22e
push 0x20
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [0x45a4d0]
lea eax, [ebp - 0x40]
push str.SysTreeView32
push eax
call fcn.00442231
test eax, eax
pop ecx
pop ecx
je 0x40e194
lea eax, [ebp - 0x40]
push str.SysListView32
push eax
call fcn.00442231
test eax, eax
pop ecx
pop ecx
jne 0x40e22e
mov esi, dword [0x45a4d4]
xor eax, eax
push eax
push 0x1ff
push eax
push eax
lea eax, [ebp + 0x40]
push eax
call esi
test eax, eax
jne 0x40e1d3
push 1
call fcn.0040de0e
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0x20e
push 0
lea eax, [ebp + 0x40]
push eax
call esi
jmp 0x40e252
mov esi, dword [ebp + 0x50]
push 0
call fcn.0040de0e
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0x20e
push 0
lea eax, [ebp + 0x40]
push eax
call dword [0x45a4d4]
test eax, eax
push 1
je 0x40e20c
mov eax, dword [ebp + 0x50]
sub eax, esi
test eax, eax
jle 0x40e213
push 0x1ff
jmp 0x40e244
call fcn.0040de0e
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0x20e
jmp 0x40e246
push 1
call fcn.0040de0e
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0
lea eax, [ebp + 0x40]
push 0
push eax
call dword [0x45a4d4]
xor esi, esi
cmp eax, esi
jne 0x40dfb8
call dword [0x45a26c]
mov ecx, eax
sub ecx, edi
cmp ecx, 3
jbe 0x40e270
mov dword [0x4681a8], eax
cmp dword [ebp + 0x78], esi
jne 0x40e28b
cmp byte [ebp + 0x63], 0
jne 0x40e28b
push esi
call dword [0x45a264]
mov byte [ebp + 0x63], 1
jmp 0x40df56
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.0040ef40
add esp, 0xc
test eax, eax
jne 0x40eef7
push 5
call dword [0x45a264]
jmp 0x40df56
cmp eax, 0x25
je 0x40e331
cmp eax, 0x27
je 0x40e331
push 0x11
call dword [0x45a4d8]
test ah, ah
jns 0x40e331
cmp dword [ebp + 0x48], 9
jne 0x40e2e1
cmp byte [edi + 4], 0xc
jne 0x40e2e1
push 0xfffffffffffffff0
push dword [edi]
call dword [0x45a4dc]
test al, 4
jne 0x40e331
test esi, esi
jne 0x40e306
xor eax, eax
mov al, byte [edi + 6]
mov ecx, ebx
push eax
call fcn.00432c16
mov esi, eax
test esi, esi
jne 0x40e306
push eax
mov ecx, ebx
call fcn.00432c16
mov esi, eax
test esi, esi
je 0x40e331
cmp dword [ebp + 0x48], 0x22
je 0x40e322
cmp dword [ebp + 0x48], 9
jne 0x40e31e
push 0x10
call dword [0x45a4d8]
test ah, ah
jns 0x40e322
xor al, al
jmp 0x40e326
xor eax, eax
mov al, 1
push 1
push 1
push eax
push esi
jmp 0x40e0d5
cmp dword [ebp + 0x48], 0x1b
je 0x40e357
cmp dword [ebp + 0x48], 9
je 0x40e357
cmp dword [ebp + 0x48], 0x41
jne 0x40e3da
push 0x11
call dword [0x45a4d8]
test ah, ah
jns 0x40e3da
call dword [0x45a4c4]
mov esi, eax
test esi, esi
je 0x40e3da
push esi
call fcn.0043b74c
test eax, eax
pop ecx
je 0x40e3da
push eax
call fcn.00432620
mov ebx, eax
test ebx, ebx
pop ecx
je 0x40e3da
push 0
push esi
mov ecx, ebx
call fcn.004325c1
test eax, eax
mov dword [ebp + 0x68], eax
je 0x40e3da
cmp byte [eax + 4], 0xc
jne 0x40e3da
cmp dword [ebp + 0x48], 0x1b
je 0x40e3ce
cmp dword [ebp + 0x48], 0x41
je 0x40e3b2
test byte [eax + 5], 0x80
je 0x40e3da
push 0x45a5e4
push 1
push 0xc2
jmp 0x40e3c1
test byte [eax + 5], 2
jne 0x40e3da
push 0xffffffffffffffff
push 0
push 0xb1
push dword [eax]
call dword [0x45a4e0]
jmp 0x40df56
mov ecx, ebx
call fcn.00432356
jmp 0x40df56
mov eax, dword [0x46b400]
xor ecx, ecx
cmp eax, ecx
je 0x40e400
cmp dword [ebp + 0x48], 0xd
jne 0x40e3ef
push ecx
push ecx
jmp 0x40e3f8
cmp dword [ebp + 0x48], 0x1b
jne 0x40e400
push ecx
push 1
push 0x1116
push eax
jmp 0x40e3c3
xor edi, edi
mov esi, 0x467980
mov eax, dword [esi]
test eax, eax
je 0x40e458
cmp dword [eax], 0
je 0x40e44f
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 1
mov eax, dword [ebp + 0x44]
mov ecx, dword [0x465108]
mov dword [ecx + 0xbc], eax
lea eax, [ebp + 0x40]
push eax
mov eax, dword [esi]
push dword [eax]
call dword [0x45a4e4]
test eax, eax
jne 0x40e56d
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 0
inc edi
cmp dword [0x46b3fc], edi
je 0x40e463
add esi, 4
cmp esi, 0x467b0c
jl 0x40e407
mov ecx, dword [ebp + 0x44]
mov eax, 0x312
cmp ecx, eax
ja 0x40e5cf
je 0x40e612
mov eax, ecx
sub eax, 0x12
je 0x40e5ba
sub eax, 0x39
je 0x40e5aa
sub eax, 0xb5
je 0x40e57e
sub eax, 0x13
jne 0x40e93d
xor esi, esi
cmp dword [ebp + 0x4c], esi
jne 0x40e93d
mov eax, dword [0x467254]
cmp dword [ebp + 0x40], eax
jne 0x40e93d
cmp dword [0x4693dc], esi
je 0x40e4c7
call fcn.0040ef81
cmp dword [0x468158], esi
je 0x40e4dc
call fcn.0040dcee
test al, al
je 0x40e4dc
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x7c], esi
je 0x40df56
cmp dword [ebp + 0x78], 1
jl 0x40df56
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.0040ef40
add esp, 0xc
test eax, eax
je 0x40df56
cmp byte [ebp + 0x67], 0
je 0x40e515
mov byte [0x4673a5], 0
cmp byte [ebp + 0x66], 0
je 0x40e562
dec dword [0x4673b4]
xor eax, eax
cmp dword [ebp + 0x78], eax
jle 0x40e562
cmp dword [0x4673b4], eax
jne 0x40e562
cmp dword [0x468158], eax
jne 0x40e562
cmp dword [0x4693dc], eax
jne 0x40e562
cmp byte [0x46739f], 0
je 0x40e562
push 9
push dword [0x467254]
call dword [0x45a544]
test eax, eax
je 0x40e562
mov byte [0x46739f], 0
mov al, byte [ebp + 0x6f]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 0
jmp 0x40df56
mov eax, dword [ebp + 0x40]
cmp eax, dword [0x467258]
jne 0x40e93d
cmp dword [ebp + 0x48], 0x1b
jne 0x40e93d
push 0
push dword [0x467254]
call dword [0x45a4e8]
jmp 0x40df56
and dword [0x467390], 0
mov byte [ebp + 0x65], 1
jmp 0x40df56
push 0
push 0
push 6
mov ecx, 0x467ce0
call fcn.00417dd5
jmp 0x40df56
cmp ecx, 0x400
jb 0x40e93d
cmp ecx, 0x401
jbe 0x40e5ff
cmp ecx, 0x402
je 0x40e612
cmp ecx, 0x414
je 0x40e612
cmp ecx, 0x415
jne 0x40e93d
mov eax, dword [ebp + 0x40]
test eax, eax
je 0x40e612
cmp eax, dword [0x467254]
jne 0x40e93d
mov eax, ecx
xor esi, esi
xor edi, edi
sub eax, 0x401
je 0x40e7ee
dec eax
je 0x40e7c9
sub eax, 0x12
je 0x40e685
dec eax
je 0x40e67b
mov eax, dword [0x466200]
movzx eax, word [eax]
cmp dword [ebp + 0x48], eax
jae 0x40df56
mov eax, dword [ebp + 0x48]
mov ecx, dword [eax*4 + 0x468428]
lea eax, [ebp + 0x34]
push eax
mov dword [ebp + 0x10], ecx
call fcn.00411a75
test eax, eax
mov dword [ebp + 0x1c], eax
je 0x40df56
mov ecx, eax
mov al, byte [ecx + 0x18]
cmp al, 1
je 0x40e674
cmp al, 3
je 0x40e674
and dword [ebp + 0x34], edi
mov eax, dword [ecx]
jmp 0x40e860
mov eax, dword [0x468140]
jmp 0x40e860
push dword [ebp + 0x40]
call fcn.00432620
mov ebx, eax
cmp ebx, esi
pop ecx
je 0x40e93d
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0x48]
mov edx, dword [ebp + 0x4c]
mov dword [ebp + 8], eax
movzx eax, cx
shr ecx, 0x10
cmp eax, 8
mov dword [ebp + 0x5c], edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0xc], ecx
jne 0x40e6c6
mov dword [ebp + 0x5c], ecx
mov ecx, 0x2af8
mov dword [ebp + 4], edx
mov dword [ebp + 0xc], ecx
cmp ecx, dword [ebx + 0xc]
jae 0x40e6d9
mov edx, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov dword [ebp + 0x68], ecx
jmp 0x40e6dc
mov dword [ebp + 0x68], esi
sub eax, 5
mov dword [ebp + 0x30], esi
mov byte [ebp + 0x64], 0
je 0x40e780
dec eax
je 0x40e76d
dec eax
je 0x40e757
dec eax
je 0x40e744
dec eax
je 0x40e734
cmp dword [ebp + 0x68], esi
je 0x40df56
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov dword [ebp + 0x3c], ecx
jne 0x40e724
test byte [eax + 5], 1
je 0x40df56
mov ecx, ebx
call fcn.0042f1af
jmp 0x40df56
test byte [eax + 5], 4
jne 0x40df56
mov byte [ebp + 0x64], 1
jmp 0x40e7a9
mov eax, dword [ebx + 0x2c]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x40df56
jmp 0x40e7a9
mov eax, dword [ebx + 0x24]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x40df56
lea eax, [ebx + 0x32]
jmp 0x40e768
mov eax, dword [ebx + 0x20]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x40df56
lea eax, [ebx + 0x31]
mov dword [ebp + 0x30], eax
jmp 0x40e7a9
mov eax, dword [ebx + 0x1c]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x40df56
lea eax, [ebx + 0x30]
jmp 0x40e768
mov eax, dword [ebx + 0x28]
cmp eax, esi
mov edi, dword [ebx + 0x6c]
mov dword [ebp + 0x3c], eax
je 0x40e7b1
cmp edi, esi
je 0x40df56
xor esi, esi
push esi
push esi
push 0xffffffffffffffff
push edi
call dword [0x45a300]
cmp eax, esi
mov dword [ebp + 0x5c], eax
je 0x40e7b1
mov eax, dword [ebp + 0x3c]
jmp 0x40e860
cmp edi, esi
je 0x40df56
push edi
call dword [0x45a304]
and dword [ebx + 0x6c], 0
jmp 0x40df56
push dword [ebp + 0x4c]
mov ecx, 0x467ce0
call fcn.00436af3
cmp eax, esi
mov dword [ebp + 0x2c], eax
je 0x40df56
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40df56
jmp 0x40e860
mov eax, dword [ebp + 0x48]
cmp eax, dword [0x4693e4]
jae 0x40df56
mov eax, dword [0x4693e0]
mov ecx, dword [ebp + 0x48]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov al, byte [esi + 0x20]
test al, al
mov dword [ebp + 0x28], esi
je 0x40e839
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
call fcn.0040fd70
add esp, 0xc
test eax, eax
mov dword [ebp + 0x34], eax
je 0x40df56
mov al, byte [esi + 0x20]
cmp al, 1
je 0x40e83d
cmp al, 3
je 0x40e83d
and dword [ebp + 0x34], 0
push dword [ebp + 0x4c]
mov ecx, esi
call fcn.0040f9e0
mov eax, dword [esi + 8]
cmp byte [eax], 0
jne 0x40df56
mov al, byte [ebp + 0x4c]
mov byte [0x468170], al
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [0x4673b8]
mov ecx, dword [0x46507c]
cmp edx, ecx
mov al, byte [eax]
mov byte [ebp + 0x24], al
jl 0x40e8a7
add ecx, 2
cmp edx, ecx
jge 0x40e9e6
cmp al, 0xd6
je 0x40e8a7
cmp al, 0xc2
je 0x40e8a7
cmp al, 0xd0
je 0x40e8a7
cmp al, 0xd1
je 0x40e8a7
cmp al, 0xcc
je 0x40e8a7
cmp al, 0xcd
je 0x40e8a7
cmp al, 0xce
je 0x40e8a7
cmp al, 0xcf
jne 0x40e9e6
mov eax, dword [ebp + 0x44]
sub eax, 0x401
je 0x40e9d6
dec eax
je 0x40e905
sub eax, 0x12
je 0x40e8f9
dec eax
je 0x40e8e5
push dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x10]
call fcn.00411990
test al, al
jne 0x40e8dd
push dword [ebp + 0x1c]
call fcn.004119cd
pop ecx
jmp 0x40df56
mov eax, dword [ebp + 0x1c]
jmp 0x40e9d9
cmp byte [0x46813c], 0
jne 0x40df56
xor esi, esi
jmp 0x40e9dc
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x40e8f2
cmp byte [eax], 0
jmp 0x40e8ec
mov eax, dword [ebp + 0x2c]
mov esi, dword [eax + 0x18]
mov eax, dword [ebp + 0x48]
cmp eax, 0x63
jae 0x40e9d2
mov ebx, dword [eax*4 + 0x467980]
test ebx, ebx
jne 0x40e9dc
cmp dword [ebp + 0x40], ebx
je 0x40e9dc
mov eax, dword [0x467254]
cmp dword [ebp + 0x40], eax
je 0x40e9dc
call dword [0x45a4c8]
mov esi, eax
test esi, esi
je 0x40eea2
push 0
push esi
call dword [0x45a4cc]
cmp eax, dword [0x467c9c]
jne 0x40eea2
push 0x20
lea eax, [ebp - 0x40]
push eax
push esi
call dword [0x45a4d0]
lea eax, [ebp - 0x40]
push str.32770
push eax
call fcn.00457670
test eax, eax
pop ecx
pop ecx
jne 0x40eea2
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 1
mov eax, dword [ebp + 0x44]
mov ecx, dword [0x465108]
mov dword [ecx + 0xbc], eax
lea eax, [ebp + 0x40]
push eax
push esi
call dword [0x45a4e4]
test eax, eax
je 0x40ee96
cmp dword [0x4673d8], 0
je 0x40e56d
push 0x467b80
call dword [0x45a268]
jmp 0x40e56d
xor ebx, ebx
jmp 0x40e9dc
mov eax, dword [ebp + 0x28]
mov esi, dword [eax + 0x14]
mov eax, dword [0x465108]
cmp esi, dword [eax + 0x2c]
jge 0x40e9ed
test edi, edi
jmp 0x40e7b3
cmp dword [ebp + 0x44], 0x402
mov byte [ebp + 0x6f], 1
je 0x40ea4a
cmp dword [ebp + 0x44], 0x413
jbe 0x40ea0c
cmp dword [ebp + 0x44], 0x415
jbe 0x40ea75
cmp dword [ebp + 0x44], 0x401
mov eax, dword [0x468130]
mov dword [0x468134], eax
mov eax, dword [0x468168]
mov dword [0x46816c], eax
jne 0x40ea32
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x40ea38
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [0x468130], eax
call dword [0x45a26c]
mov dword [0x468168], eax
jmp 0x40ea75
mov eax, dword [ebp + 0x2c]
mov edi, 0x105
push edi
push dword [eax]
push 0x467f24
call fcn.0043961e
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + 0x14]
push edi
push dword [eax]
push 0x468029
call fcn.0043961e
add esp, 0x18
mov ecx, dword [0x467b78]
xor edi, edi
push 0x80
inc edi
push edi
call fcn.00401e61
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.0043961e
push dword [ebp + 0x24]
push edi
push 0
push esi
call fcn.0040dc08
mov esi, dword [0x465108]
add esp, 0x1c
call dword [0x45a26c]
mov dword [0x4681ac], eax
mov dword [0x4681a8], eax
mov eax, dword [ebp + 0x44]
sub eax, 0x401
je 0x40ee48
dec eax
je 0x40ee23
sub eax, 0x12
je 0x40eb63
dec eax
je 0x40eb06
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx + 0x12]
cmp al, 0x9c
jb 0x40eaf0
cmp al, 0x9f
ja 0x40eaf0
mov eax, dword [ebp + 0x4c]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0x34]
push dword [ebp + 0x1c]
mov dword [esi + 0xa0], eax
call fcn.00411b6a
jmp 0x40ee59
call dword [0x45a4ec]
test eax, eax
je 0x40eb30
mov edi, dword [0x45a550]
push 1
call edi
test eax, eax
jne 0x40eb2b
push 0xf
call edi
test eax, eax
jne 0x40eb2b
push 2
pop eax
jmp 0x40eb32
xor eax, eax
inc eax
jmp 0x40eb32
xor eax, eax
push 0x18
push 0
mov dword [esi + 0x38], eax
mov ecx, dword [0x467b78]
push eax
call fcn.00401c1f
mov ecx, dword [0x468140]
mov byte [0x46813c], 1
call fcn.004065a4
mov byte [0x46813c], 0
jmp 0x40ee59
mov ecx, dword [ebp + 0x20]
push 5
pop edi
cmp ecx, edi
mov byte [ebp - 0xc], 0
je 0x40ed2a
jbe 0x40ecac
cmp ecx, 8
jbe 0x40ec51
cmp ecx, 9
jne 0x40ecac
xor ecx, ecx
xor eax, eax
cmp dword [ebp + 0x5c], eax
lea edi, [esi + 0x3c]
sete cl
cmp dword [ebp + 0x68], eax
mov dword [ebp + 0x5c], eax
lea ecx, [ecx + ecx + 1]
mov dword [esi + 0x34], ecx
mov ecx, dword [ebp + 0x54]
mov dword [edi], ecx
mov ecx, dword [ebp + 0x58]
mov dword [edi + 4], ecx
je 0x40ec42
cmp dword [esi + 0x34], 1
jne 0x40ebc9
push edi
push dword [ebp + 0x68]
mov ecx, ebx
call fcn.0042fb6e
mov eax, dword [ebp + 0x68]
movzx eax, byte [eax + 4]
sub eax, 9
je 0x40ec2a
dec eax
je 0x40ec1f
dec eax
jne 0x40ec42
cmp dword [esi + 0x34], 1
jne 0x40ebec
push 0
push 9
push 0x110a
jmp 0x40ec12
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x68]
push dword [eax]
call dword [0x45a520]
lea eax, [ebp - 0x1c]
push eax
push 0
push 0x1111
mov eax, dword [ebp + 0x68]
push dword [eax]
call dword [0x45a4e0]
jmp 0x40ec3f
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x40ec33
push 0
push 0
push 0x19f
mov eax, dword [ebp + 0x68]
push dword [eax]
call dword [0x45a4e0]
inc eax
mov dword [ebp + 0x5c], eax
push dword [ebx]
push edi
call fcn.004393bd
pop ecx
pop ecx
jmp 0x40ed71
cmp ecx, 8
mov dword [esi + 0x34], 1
jne 0x40ed69
mov eax, dword [ebp + 4]
mov dword [esi + 0x3c], eax
mov ecx, dword [0x467b78]
push 0x18
push 0
push dword [ebp + 0x5c]
call fcn.00401c1f
mov eax, dword [ebx]
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xa0], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x44], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0x5c]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0x30]
test eax, eax
mov dword [esi + 0x48], edi
je 0x40ed8b
mov byte [eax], 1
jmp 0x40ed98
mov eax, dword [ebp + 0x68]
mov al, byte [eax + 4]
cmp al, 0xa
je 0x40ecd7
cmp al, 0x15
jne 0x40ed25
mov ecx, dword [ebp + 0x54]
lea eax, [esi + 0x3c]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x58]
mov dword [eax + 4], ecx
push dword [ebx]
push eax
call fcn.004393bd
pop ecx
pop ecx
mov ecx, dword [ebp + 0x20]
jmp 0x40ed25
cmp cl, 0x49
jne 0x40ed25
test ch, 1
lea eax, [ebp - 0xc]
je 0x40ecea
mov byte [ebp - 0xc], 0x53
jmp 0x40ecf3
test ch, 2
je 0x40ecf6
mov byte [ebp - 0xc], 0x73
lea eax, [ebp - 0xb]
test ch, 4
je 0x40ed00
mov byte [eax], 0x46
jmp 0x40ed08
test ch, 8
je 0x40ed09
mov byte [eax], 0x66
inc eax
test ch, 0x10
je 0x40ed13
mov byte [eax], 0x43
jmp 0x40ed1b
test ch, 0x20
je 0x40ed1c
mov byte [eax], 0x63
inc eax
push 0x49
pop ecx
mov byte [eax], 0
mov dword [ebp + 0x20], ecx
mov dword [esi + 0x34], ecx
jmp 0x40ed60
mov dword [esi + 0x34], edi
mov ecx, dword [ebp + 0x54]
lea eax, [esi + 0x3c]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x58]
mov dword [eax + 4], ecx
push dword [ebx]
push eax
call fcn.004393bd
pop ecx
pop ecx
push 0xffffffffffffffec
push dword [ebx]
call dword [0x45a4dc]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [ebx]
call dword [0x45a524]
mov ecx, dword [ebp + 0x20]
cmp ecx, 8
je 0x40ec67
cmp ecx, edi
je 0x40ec67
mov ecx, dword [0x467b78]
push 1
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0xc]
push eax
call fcn.0040184e
jmp 0x40ec79
cmp byte [ebp + 0x64], 0
je 0x40ed98
mov eax, dword [ebp + 0x68]
or byte [eax + 5], 4
mov ecx, dword [ebp + 0x3c]
call fcn.004065a4
mov eax, dword [ebp + 8]
mov ebx, dword [eax*4 + 0x467980]
test ebx, ebx
je 0x40ee59
cmp edi, dword [ebx + 0xc]
jae 0x40edc2
mov ecx, dword [ebx + 0x14]
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*4]
jmp 0x40edc4
xor ecx, ecx
mov eax, dword [ebp + 0x20]
sub eax, 5
mov dword [ebp + 0x68], ecx
je 0x40edf7
dec eax
je 0x40edf1
dec eax
je 0x40edeb
dec eax
je 0x40ede5
dec eax
je 0x40ee59
test ecx, ecx
je 0x40ee59
and byte [ecx + 5], 0xfb
jmp 0x40ee59
mov byte [ebx + 0x32], 0
jmp 0x40ee59
mov byte [ebx + 0x31], 0
jmp 0x40ee59
mov byte [ebx + 0x30], 0
jmp 0x40ee59
mov eax, dword [ebx + 0x6c]
test eax, eax
je 0x40ee09
push eax
call dword [0x45a304]
and dword [ebx + 0x6c], 0
push 0xffffffffffffffec
push dword [ebx]
call dword [0x45a4dc]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [ebx]
call dword [0x45a524]
jmp 0x40ee59
test ebx, ebx
je 0x40ee3b
mov eax, dword [ebx]
mov dword [esi + 0xa0], eax
mov dword [esi + 0x34], edi
mov eax, dword [ebx + 8]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 0xc]
call fcn.004065a4
jmp 0x40ee59
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x28]
mov dword [esi + 0xa0], eax
call fcn.0040fc92
lea eax, [ebp - 0xc0]
push eax
call fcn.0040dbd6
cmp dword [ebp + 0x7c], 0
pop ecx
je 0x40df56
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.0040ef40
add esp, 0xc
test eax, eax
je 0x40df56
mov byte [ebp + 0x65], 1
mov byte [ebp + 0x38], 1
jmp 0x40df56
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 0
mov eax, dword [0x467264]
test eax, eax
je 0x40eec4
lea ecx, [ebp + 0x40]
push ecx
push eax
push dword [0x467254]
call dword [0x45a528]
test eax, eax
jne 0x40df56
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 1
mov eax, dword [0x465108]
mov ecx, dword [ebp + 0x44]
mov dword [eax + 0xbc], ecx
lea eax, [ebp + 0x40]
push eax
call dword [0x45a52c]
lea eax, [ebp + 0x40]
push eax
call dword [0x45a530]
jmp 0x40e56d
cmp byte [ebp + 0x67], 0
je 0x40ef04
mov byte [0x4673a5], 0
cmp byte [ebp + 0x66], 0
je 0x40e562
dec dword [0x4673b4]
cmp dword [ebp + 0x78], esi
jle 0x40e562
cmp dword [0x4673b4], esi
jne 0x40e562
cmp dword [0x468158], esi
jne 0x40e562
cmp dword [0x4693dc], esi
jmp 0x40e53e