Function at 0x405510
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x6c
mov eax, dword [0x42d5e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x42df60]
mov eax, dword [0x42df64]
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
and edx, 0xfffffffe
not ecx
mov esi, ecx
and ecx, 1
and esi, 0xfffffffe
or ecx, edx
mov edx, esi
and edx, ecx
xor ecx, esi
or ecx, edx
mov edx, ecx
and ecx, 0x31300
not edx
mov esi, edx
or edx, 0x210f9706
and esi, 0x210c8406
or ecx, esi
mov esi, ecx
xor ecx, 0xc874ac1c
xor esi, 0x11200
and ecx, 0xc876ad1c
and esi, 0x21091202
or esi, ecx
mov ecx, edx
and edx, 0xc876ad1c
not ecx
and ecx, 0x168040e1
or ecx, edx
xor ecx, esi
mov edx, ecx
and ecx, 0x6f388bb1
not edx
and edx, 0x90c7744e
or ecx, edx
xor ecx, 0x4e371cb7
sete byte [ebp - 0x5a]
cmp eax, 0xa
mov eax, 0xb95b3f5
setl byte [ebp - 0x59]
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, 0x111341cb
nop
cmp eax, 0x1605aca4
jle 0x405670
cmp eax, 0x232f580a
jle 0x405630
cmp eax, 0x5c67cd79
jle 0x405989
cmp eax, 0x5c67cd7a
je 0x405d4c
cmp eax, 0x67d17df5
je 0x405e0e
cmp eax, 0x6d8461aa
jne 0x4055e0
cmp byte [ebp - 0x39], 0
mov eax, 0xff1043d0
mov ecx, 0x9c5947be
jmp 0x406281
cmp eax, 0x19e149dd
jle 0x4059af
cmp eax, 0x19e149de
je 0x405e38
cmp eax, 0x1c01b337
je 0x405e65
cmp eax, 0x1e486c41
jne 0x4055e0
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x30]
mov eax, 0xc73d64ed
cmp eax, 0x1605aca4
jg 0x4055eb
nop
cmp eax, 0xd0cb7120
jg 0x4057f0
cmp eax, 0xa87b0be2
jle 0x4059ca
cmp eax, 0xa87b0be3
je 0x405edd
cmp eax, 0xae465df6
je 0x40612b
cmp eax, 0xc73d64ed
jne 0x4055e0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
cmp ecx, eax
mov ecx, dword [0x42df60]
setl byte [ebp - 0x39]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, eax
mov esi, eax
and eax, 0xa1a6dbf0
not ecx
and esi, 0xb2a916df
mov edx, ecx
mov edi, ecx
and ecx, 0x5e59240f
and edx, 0x4d56e920
or edi, 0xd8c5ba6d
or eax, ecx
or esi, edx
mov ecx, eax
xor eax, 0x5e59240f
mov edx, esi
xor esi, 0x4000a020
xor ecx, 0xa1a6dbf0
xor edx, 0x1024c
or esi, 0x27120080
and esi, 0xf792b0a1
and edx, 0x8450a4c
or edx, esi
mov esi, edi
and edi, 0xf792b0a1
not esi
and esi, 0x284512
or esi, edi
mov edi, 0x6d8461aa
xor esi, edx
mov edx, esi
and esi, 0xd8c5ba6c
not edx
and edx, 0x273a4593
or esi, edx
mov edx, dword [0x42df64]
and eax, esi
not esi
and ecx, esi
or eax, ecx
xor esi, eax
test esi, eax
mov esi, 0x1e486c41
setne ch
sete ah
cmp edx, 9
setg cl
cmp edx, 0xa
mov al, ch
mov dh, ch
setl dl
xor al, dl
or dh, dl
and ch, dl
not al
xor dh, 1
and al, dl
mov dl, cl
mov bl, dh
xor dl, ah
and bl, al
xor al, dh
and dl, cl
and cl, ah
or al, bl
mov ah, dl
or cl, ch
xor al, 1
xor dl, cl
xor ah, 1
xor cl, 1
or cl, ah
xor cl, 1
or cl, dl
mov edx, ecx
xor dl, 1
mov ah, dl
and ah, cl
xor dl, ah
xor ah, 1
or ah, cl
mov ecx, eax
xor ah, 1
or ah, dl
xor ah, 1
or cl, ah
xor al, ah
mov edx, ecx
xor dl, al
test dl, 1
cmovne edi, esi
test al, 1
mov esi, 0x6d8461aa
mov eax, edi
cmovne eax, esi
test cl, 1
cmovne eax, edi
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
cmp eax, 0xff1043cf
jle 0x405ca7
cmp eax, 0xff1043d0
je 0x4061bc
cmp eax, 0xb95b3f5
je 0x4061df
cmp eax, 0x111341cb
jne 0x4055e0
mov eax, dword [ebp - 0x24]
add eax, 0x28
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [0x42df60]
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
or edx, 0xc3644e5f
not eax
mov esi, edx
and edx, 0x3560b57a
or eax, 0x3c9bb1a0
not esi
mov ecx, eax
and esi, 0x89b0080
and eax, 0x3560b57a
not ecx
or esi, edx
and ecx, 0xc2044a05
or ecx, eax
xor ecx, esi
mov eax, ecx
and ecx, 0xcf0320c3
not eax
and eax, 0x30fcdf3c
or ecx, eax
mov edx, ecx
xor ecx, 0xc676e9c
mov eax, ecx
xor edx, 0xc2081141
and ecx, 0x31d2ccba
or eax, 1
and edx, 0xce2d3345
mov esi, eax
or edx, ecx
mov ecx, eax
not esi
and ecx, 0x823e04ab
and esi, 0x7dc1fb54
or esi, ecx
mov ecx, edx
xor edx, 0x31d2ccbb
xor ecx, 0x4c013344
or eax, edx
and edx, 0x823e04ab
and ecx, 0x7dc1fb54
not eax
or ecx, edx
xor ecx, esi
or eax, ecx
mov edx, eax
mov ecx, eax
xor edx, 0x9573f1ef
not ecx
and edx, eax
or eax, 0x6a8c0e10
and ecx, 0x1031610f
mov esi, eax
and esi, 0x854a9ef0
or ecx, esi
mov esi, edx
and edx, 0x7ab5610f
not esi
or eax, esi
and esi, 0x854a9ef0
or edx, esi
not eax
mov esi, 0x9c0158f1
xor edx, ecx
or eax, edx
mov ecx, eax
and eax, 0x657138cc
not ecx
and ecx, 0x9a8ec733
or eax, ecx
mov ecx, dword [0x42df64]
xor eax, 0xf002c923
sete al
setne dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
xor cl, dl
mov dl, ah
xor ah, al
and dl, al
or ah, dl
mov al, ah
xor al, cl
xor cl, 1
or ah, cl
xor al, 1
xor ah, 1
or ah, al
mov dl, ah
and ah, cl
xor dl, cl
or ah, dl
mov cl, ah
xor cl, dl
test ah, 1
mov eax, 0x19e149de
cmovne eax, esi
test dl, 1
mov edx, 0x19e149de
cmove eax, esi
test cl, 1
jmp 0x406845
cmp eax, 0x54b2abd7
je 0x406273
cmp eax, 0x599175d0
je 0x406294
cmp eax, 0x232f580b
jne 0x4055e0
jmp 0x406bf7
cmp eax, 0x1605aca5
je 0x406388
cmp eax, 0x196f9c9a
jne 0x4055e0
jmp 0x4061ca
cmp eax, 0x9c0158f1
je 0x4055cb
cmp eax, 0x9c5947be
jne 0x4055e0
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
push dword [ebp - 0x24]
call fcn.00403b00
push 0x235
push dword [ebp - 0x54]
call fcn.00401840
add esp, 8
mov ecx, dword [ebp - 0x54]
mov esi, eax
call fcn.00406cc0
mov ecx, dword [0x42df30]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, eax
mov edi, eax
not ecx
and edi, 0x1acf4241
mov edx, ecx
and ecx, 0xe530bdbe
and edx, eax
or ecx, edi
mov edi, edx
and edx, 0xe530bdbe
not edi
or eax, edi
and edi, 0x1acf4241
or edx, edi
not eax
xor edx, ecx
or eax, edx
mov ecx, eax
mov edx, eax
xor ecx, 1
not edx
and ecx, eax
and edx, 0x7804b548
and eax, 0x87fb4ab7
or eax, edx
mov edx, ecx
xor eax, 0x87fb4ab6
and edx, eax
xor eax, ecx
or eax, edx
mov ecx, eax
not ecx
mov edx, ecx
and ecx, eax
and eax, 0x23d2a1a1
and edx, 0xdc2d5e5e
or eax, edx
mov edx, eax
xor eax, 0xdc2d5e5e
xor edx, 0x8021a1
mov edi, eax
and edi, 0xaf53d40c
and edx, 0x50ac2bf3
or edx, edi
mov edi, ecx
and ecx, 0x50ac2bf3
not edi
or eax, edi
and edi, 0xaf53d40c
or ecx, edi
not eax
mov edi, 0x15e344f4
xor ecx, edx
or eax, ecx
mov ecx, eax
and eax, 0x18b3280e
not ecx
mov edx, ecx
and edx, 0xe74cd7f1
or eax, edx
xor eax, 0x18b3280e
or eax, ecx
mov ecx, dword [0x42df34]
cmp eax, 0xffffffff
sete al
setne dl
sete byte [ebp - 0x18]
cmp ecx, 9
setg ah
cmp ecx, 0xa
setl cl
setl byte [ebp - 0x14]
mov ch, cl
xor ch, ah
and ah, al
and ch, cl
xor ch, dl
and dl, cl
or cl, al
xor cl, 1
or ah, dl
xor ch, 1
mov edx, 0xee3ba78f
mov al, cl
and al, ah
xor ah, cl
or ah, al
xor ah, ch
and ch, ah
mov al, ah
xor al, ch
test ah, ah
cmovne edi, edx
test ch, ch
cmove edi, edx
test al, 1
mov eax, 0x15e344f4
cmove edi, eax
mov eax, 0x97803f
nop dword [eax]
cmp eax, 0x15e344f3
jg 0x405c70
cmp eax, 0xee3ba78f
je 0x405c95
cmp eax, 0x97803f
jne 0x405b40
movzx ebx, byte [ebp - 0x18]
mov bh, byte [ebp - 0x14]
mov ah, bl
mov ecx, ebx
mov dh, bh
xor ah, 1
xor dh, 1
mov al, ah
or ah, bl
mov ch, dh
and al, bl
xor al, 1
xor cl, al
or al, bl
mov bl, ah
xor al, 1
xor bl, 1
or al, cl
mov cl, dh
and cl, bh
mov dl, al
and ch, cl
xor cl, dh
or dh, bh
mov bh, ah
or cl, ch
mov ch, al
and bh, bl
xor ch, 1
xor ah, bh
xor bh, 1
xor dl, ch
or bh, bl
xor bh, 1
and dl, al
or bh, ah
mov ah, dl
xor ah, bl
or bl, dl
xor bh, dl
mov dl, cl
xor bl, 1
xor bh, 1
xor dl, 1
or bl, ah
mov ah, bh
xor bl, 1
and ah, bl
xor bl, bh
mov bh, cl
xor bh, dl
or bl, ah
and bh, cl
xor dh, bh
and bh, dh
xor dh, 1
mov ah, bh
and ah, dh
xor dh, bh
or dh, ah
mov ah, dl
and ah, cl
mov bh, dh
xor dl, ah
xor ah, 1
xor bh, 1
or ah, cl
and bh, bl
xor bl, 1
xor ah, 1
and bl, dh
or ah, dl
or bh, bl
mov dl, ah
xor ah, 1
and ah, ch
and dl, al
or ah, dl
mov edx, eax
xor dl, cl
or cl, al
mov al, ah
xor cl, 1
or cl, dl
mov dl, bh
xor cl, 1
xor dl, 1
and al, cl
xor cl, ah
or cl, al
mov eax, ecx
xor al, 1
and al, dl
or dl, cl
and cl, bh
mov ebx, 0x5a9befe2
or cl, al
mov ch, dl
mov eax, 0xee3ba78f
xor ch, cl
test cl, 1
cmovne eax, ebx
test dl, 1
mov edx, 0xee3ba78f
cmovne eax, edx
test ch, 1
cmove eax, ebx
cmp eax, 0x15e344f3
jle 0x405b4b
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0x15e344f4
je 0x406697
cmp eax, 0x5a9befe2
jne 0x405b40
mov eax, edi
cmp eax, 0x15e344f3
jle 0x405b4b
jmp 0x405c70
mov eax, 0x5a9befe2
cmp eax, 0x15e344f3
jle 0x405b4b
jmp 0x405c70
cmp eax, 0xd0cb7121
je 0x4066c6
cmp eax, 0xe855e35e
jne 0x4055e0
push 2
push 0
push dword [ebp - 0x4c]
call fcn.0041598b
add esp, 0xc
push dword [ebp - 0x4c]
call fcn.00415cae
add esp, 4
mov esi, eax
push dword [ebp - 0x4c]
call fcn.00415439
add esp, 4
mov eax, dword [ebp - 0x58]
mov edx, 0xb4063183
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
nop word cs:[eax + eax]
nop
cmp edx, 0x8033c674
je 0x405d38
cmp edx, 0xc5ec31b5
je 0x406858
cmp edx, 0xb4063183
jne 0x405d00
cmp dword [eax + 0x14], 0xf
mov edx, 0xc5ec31b5
mov ecx, 0x8033c674
cmova edx, ecx
mov ecx, dword [ebp - 0x14]
cmp edx, 0x8033c674
jne 0x405d08
mov ecx, dword [ebp - 0x18]
mov edx, 0xc5ec31b5
mov ecx, dword [ecx]
cmp edx, 0x8033c674
jne 0x405d08
jmp 0x405d38
mov ecx, dword [0x42df60]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, eax
mov esi, eax
not ecx
and esi, 0xbc885d48
mov edx, ecx
and ecx, 0x1c08e893
and edx, 0x4377a2b6
or esi, edx
mov edx, eax
and eax, 0xe3f7176c
or eax, ecx
xor esi, 0xbc885d48
and edx, 1
mov ecx, eax
or edx, esi
xor eax, 0x1c08e893
mov esi, 0xc73d64ed
and eax, edx
xor ecx, 0xe3f7176c
not edx
and ecx, edx
or eax, ecx
not eax
or eax, edx
cmp eax, 0xffffffff
sete cl
setne al
cmp dword [0x42df64], 9
setg dl
mov ah, dl
xor cl, dl
and ah, al
xor al, dl
or al, ah
mov edx, eax
and dl, cl
xor cl, al
or dl, cl
mov eax, edx
xor al, cl
mov eax, 0x1e486c41
cmovne esi, eax
test dl, dl
mov eax, 0xc73d64ed
mov edx, dword [ebp - 0x70]
cmovne eax, esi
test cl, cl
cmove eax, esi
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], esi
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x14]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x64], eax
mov eax, 0xd0cb7121
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x6c], eax
mov eax, 0x5c67cd7a
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x70], ecx
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
push eax
sub esp, 0x14
mov esi, esp
mov ecx, esi
push dword [ebp + 8]
call fcn.00403b00
mov dword [ebp - 0x18], esi
mov ecx, 0x8033c674
mov edx, 0xb4063183
mov eax, dword [ebp - 0x18]
cmp dword [esi + 0x14], 0xf
mov dword [ebp - 0x14], eax
mov eax, 0xc5ec31b5
cmova eax, ecx
nop word cs:[eax + eax]
nop
cmp edx, 0x8033c674
je 0x405ec9
cmp edx, 0xc5ec31b5
je 0x4068d1
cmp edx, 0xb4063183
jne 0x405ea0
mov ecx, dword [ebp - 0x14]
mov edx, eax
cmp edx, 0x8033c674
jne 0x405ea8
mov ecx, dword [ebp - 0x18]
mov edx, 0xc5ec31b5
mov ecx, dword [ecx]
cmp edx, 0x8033c674
jne 0x405ea8
jmp 0x405ec9
mov ecx, dword [ebp - 0x58]
call fcn.00406cc0
mov eax, dword [0x42df30]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov esi, ecx
not eax
and esi, 0xd000052
mov edx, eax
mov ebx, eax
and eax, 0x990e2a06
and edx, 0x2201f001
or ebx, 0x2f01f053
or esi, edx
mov edx, ebx
and ebx, 0x6425e02
mov edi, esi
xor esi, 0x2425e00
not edx
xor edi, 0x9000050
and edx, 0xd0bc01ac
and esi, 0x6425e02
and edi, 0x2901a051
or edx, ebx
or edi, esi
xor edx, edi
mov esi, edx
and edx, 0x2f01f052
not esi
and esi, 0xd0fe0fad
or edx, esi
mov esi, edx
and edx, 0x45f0dc5f
not esi
and esi, 0xba0f23a0
or edx, esi
mov esi, edx
xor edx, 0xba0f23a0
mov edi, edx
xor esi, 0x1000806
or edx, ecx
and ecx, 0x66f1d5f9
and edi, 0x66f1d5f9
and esi, 0x990e2a06
or eax, ecx
not edx
mov ecx, dword [0x42df34]
or esi, edi
xor eax, esi
mov esi, 0x15e344f4
or edx, eax
mov eax, edx
and edx, 0x84708cb
not eax
and eax, 0xf7b8f734
or edx, eax
xor edx, 0x84708cb
setne dl
sete ah
sete byte [ebp - 0x18]
cmp ecx, 9
setg al
cmp ecx, 0xa
mov ch, ah
setl byte [ebp - 0x14]
xor ch, dl
mov cl, al
and ch, ah
xor cl, ch
not cl
and cl, ch
or ch, al
xor cl, 1
mov ah, cl
or cl, ch
xor ah, ch
xor cl, 1
or cl, ah
mov ah, al
or al, dl
xor ah, dl
xor al, 1
mov ch, cl
or al, ah
mov dl, ah
xor ch, 1
xor al, 1
and dl, al
xor al, ah
or al, dl
mov edx, eax
xor dl, 1
and dl, ch
or ch, al
and al, cl
or al, dl
mov cl, ch
mov edx, 0xee3ba78f
xor cl, al
test al, 1
mov eax, 0xee3ba78f
cmovne eax, esi
test ch, 1
cmovne eax, edx
test cl, 1
mov ecx, 0x97803f
cmove eax, esi
nop word cs:[eax + eax]
cmp ecx, 0x15e344f3
jg 0x4060f0
cmp ecx, 0xee3ba78f
je 0x406118
cmp ecx, 0x97803f
jne 0x406040
movzx ecx, byte [ebp - 0x18]
movzx edx, byte [ebp - 0x14]
mov esi, 0xee3ba78f
mov ch, dl
mov dh, cl
xor ch, 1
xor dh, 1
mov bl, ch
and ch, cl
and cl, dl
and bl, dh
or cl, bl
mov ebx, ecx
xor bl, dh
and dh, dl
or dh, ch
and bl, cl
mov cl, dh
xor cl, 1
mov dl, cl
mov ch, cl
and dl, dh
xor ch, dl
xor dl, 1
or dl, dh
xor dl, 1
or dl, ch
mov ch, dl
xor dl, 1
and ch, bl
xor bl, 1
and dl, bl
or dl, ch
mov ch, bl
xor bl, cl
and ch, cl
or bl, ch
mov ecx, 0x5a9befe2
mov dh, bl
xor dh, dl
test bl, 1
cmovne ecx, esi
test dl, 1
cmove ecx, esi
test dh, 1
mov esi, 0x5a9befe2
cmove ecx, esi
cmp ecx, 0x15e344f3
jle 0x40604c
nop word cs:[eax + eax]
nop
cmp ecx, 0x15e344f4
je 0x4068f4
cmp ecx, 0x5a9befe2
jne 0x406040
mov ecx, eax
cmp ecx, 0x15e344f3
jle 0x40604c
jmp 0x4060f0
mov ecx, 0x5a9befe2
cmp ecx, 0x15e344f3
jle 0x40604c
jmp 0x4060f0
push eax
sub esp, 0x14
mov eax, esp
mov dword [ebp - 0x58], eax
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x58]
push dword [ebp + 8]
call fcn.00403b00
mov eax, dword [ebp - 0x58]
mov edx, 0xb4063183
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp edx, 0x8033c674
je 0x4061a8
cmp edx, 0xc5ec31b5
je 0x40690c
cmp edx, 0xb4063183
jne 0x406170
cmp dword [eax + 0x14], 0xf
mov edx, 0xc5ec31b5
mov ecx, 0x8033c674
cmova edx, ecx
mov ecx, dword [ebp - 0x14]
cmp edx, 0x8033c674
jne 0x406178
mov ecx, dword [ebp - 0x18]
mov edx, 0xc5ec31b5
mov ecx, dword [ecx]
cmp edx, 0x8033c674
jne 0x406178
jmp 0x4061a8
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
call fcn.00404730
add esp, 8
mov eax, 0x599175d0
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov ah, byte [ebp - 0x5a]
mov ch, byte [ebp - 0x59]
mov esi, 0x1c01b337
mov dh, ch
mov cl, ah
xor dh, 1
xor cl, 1
mov al, dh
mov dl, dh
or ah, cl
or dh, ch
and al, ch
xor ah, 1
xor dl, al
xor al, 1
or al, ch
mov ch, cl
xor al, 1
and ch, ah
xor ah, cl
or al, dl
or ah, ch
xor dh, al
mov dl, al
mov ch, dh
xor dl, 1
and ch, al
and dl, al
xor ch, 1
mov bl, ch
or ch, dh
xor bl, dh
xor ch, 1
or ch, bl
xor ch, ah
mov ah, dl
xor dl, al
and ah, al
or dl, ah
mov ah, cl
xor ah, al
or al, cl
xor dl, cl
xor al, 1
mov cl, dl
or al, ah
xor al, 1
and cl, al
xor al, dl
mov edx, 0xae465df6
or al, cl
xor al, ch
and ch, al
mov cl, al
xor cl, ch
test cl, 1
cmovne edx, esi
test al, 1
mov eax, 0xae465df6
cmovne eax, edx
test ch, 1
jmp 0x406845
cmp byte [ebp - 0x45], 0
mov eax, 0xe855e35e
mov ecx, 0x196f9c9a
cmovne eax, ecx
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov eax, dword [0x42df60]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov esi, ecx
not eax
and esi, 0xeb585ac0
mov edx, eax
and eax, 0x4452ac31
and edx, 0x14a7a53e
or esi, edx
mov edx, ecx
xor edx, 0xfffffffe
xor esi, 0xeb585ac0
and edx, ecx
mov edi, esi
and ecx, 0xbbad53ce
and edi, edx
xor edx, esi
or eax, ecx
mov ecx, dword [0x42df64]
or edx, edi
mov esi, edx
and edx, 0x4452ac31
not esi
mov edi, esi
and edi, 0xbbad53ce
or edx, edi
mov edi, 0x1605aca5
xor eax, edx
not eax
or eax, esi
mov esi, 0xa87b0be3
cmp eax, 0xffffffff
sete dl
setne ah
cmp ecx, 0xa
setl dh
cmp ecx, 9
mov ch, ah
setg cl
xor ch, dl
xor dh, dl
and ch, ah
mov dl, cl
mov al, ch
xor dl, ah
xor al, cl
xor dl, 1
and ch, al
and al, cl
or cl, ah
mov ah, dl
mov bl, ch
xor cl, 1
xor ch, al
xor al, 1
xor bl, 1
or cl, dh
or al, bl
or dl, cl
xor ah, cl
xor al, 1
xor dl, 1
or al, ch
or dl, ah
mov ch, al
mov cl, dl
xor ch, dl
xor cl, 1
and dl, al
and ch, al
xor al, 1
and al, cl
or dl, al
mov al, ch
xor al, dl
test al, 1
cmovne esi, edi
test dl, 1
mov eax, esi
cmovne eax, edi
test ch, 1
cmove eax, esi
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov ecx, dword [ebp - 0x58]
call fcn.00406cc0
mov eax, dword [0x42df30]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xef2a4bd4
and eax, ecx
not ecx
and ecx, 0xef2a4bd4
mov edx, ecx
and edx, eax
xor eax, ecx
or eax, edx
mov ecx, eax
and eax, 0x36e87338
not ecx
and ecx, 0xc9178cc7
or eax, ecx
mov edx, eax
mov ecx, eax
xor eax, 0x263dc712
xor edx, 0x263dc713
xor ecx, 0x100000cc
mov esi, edx
and ecx, 0x141d82ce
and edx, 1
and esi, 0xebe27d31
or eax, edx
or ecx, esi
mov edx, eax
and eax, 0x5cc21281
mov esi, ecx
not edx
and ecx, 0xc748632e
not esi
and edx, 0xa33ded7e
and esi, 0x38b79cd1
or eax, edx
or ecx, esi
xor eax, 0x5cc21281
mov esi, dword [0x42df34]
xor ecx, 0x2caa1e1e
mov edx, ecx
and edx, eax
xor eax, ecx
or eax, edx
mov ecx, eax
and eax, 0x8d1c844d
not ecx
and ecx, 0x72e37bb2
or eax, ecx
mov ecx, eax
xor eax, 0x62a21ab0
xor ecx, 0x811c844d
and eax, 0x6ea21ab0
and ecx, 0x915de54f
or ecx, eax
xor ecx, 0x6ea21ab0
setne ch
sete ah
sete byte [ebp - 0x18]
cmp esi, 9
setg cl
cmp esi, 0xa
mov dh, ch
mov esi, 0x15e344f4
setl dl
setl byte [ebp - 0x14]
xor dh, ah
and dh, ch
mov bl, dh
xor bl, 1
mov al, bl
or al, dh
xor dh, al
or al, bl
xor dh, 1
xor al, 1
or al, dh
xor al, 1
mov dh, al
xor al, cl
not al
or dh, cl
and al, cl
xor cl, ch
mov ch, dl
xor dl, ah
mov bl, dh
and ch, ah
xor cl, 1
xor bl, al
xor al, 1
or dl, ch
mov ah, cl
or al, dh
xor bl, 1
or cl, dl
xor ah, dl
xor al, 1
xor cl, 1
or al, bl
or cl, ah
mov edx, ecx
mov ah, cl
xor dl, 1
and dl, cl
xor dl, 1
xor ah, dl
or dl, cl
xor dl, 1
or dl, ah
mov ecx, edx
xor cl, 1
mov ah, cl
and ah, al
xor al, 1
and dl, al
or dl, ah
mov ah, al
xor al, cl
and ah, cl
or al, ah
mov ecx, eax
xor cl, dl
test al, 1
mov eax, 0xee3ba78f
cmovne esi, eax
test dl, 1
cmove esi, eax
test cl, 1
mov eax, 0x15e344f4
cmove esi, eax
mov eax, 0x97803f
nop dword [eax + eax]
cmp eax, 0x15e344f3
jg 0x406660
cmp eax, 0xee3ba78f
je 0x406685
cmp eax, 0x97803f
jne 0x406520
movzx edx, byte [ebp - 0x18]
movzx eax, byte [ebp - 0x14]
mov edi, 0x5a9befe2
mov dh, dl
mov ebx, eax
mov bh, al
xor dh, 1
xor bl, 1
mov ah, dh
mov cl, dh
mov byte [ebp - 0x5b], bl
or bh, bl
and ah, dl
mov bl, bh
and cl, ah
xor ah, dh
or dh, dl
mov dl, al
xor bl, 1
or ah, cl
mov cl, ah
mov ch, ah
mov byte [ebp - 0x5d], ah
mov ah, dh
xor cl, 1
xor ah, 1
mov al, cl
and ah, cl
or al, dh
and dh, ch
mov ch, dl
or dh, ah
mov ah, al
mov byte [ebp - 0x5c], ch
xor ah, dh
xor dh, 1
or dh, al
mov al, dl
xor ah, 1
and al, byte [ebp - 0x5b]
xor dh, 1
or dh, ah
mov ah, bh
xor bh, ch
and ah, bl
xor ah, 1
and dl, al
xor al, ch
mov ch, byte [ebp - 0x5d]
or al, dl
mov dl, bl
xor dl, ah
or ah, bl
or bl, byte [ebp - 0x5b]
xor ah, 1
or ah, dl
mov dl, al
xor dl, 1
and dl, ah
xor ah, 1
xor bl, 1
and ah, al
or bl, bh
or ah, dl
xor bl, 1
mov al, ah
and al, bl
xor bl, ah
mov ah, byte [ebp - 0x5c]
or bl, al
mov dl, bl
xor dl, 1
and dl, bl
xor cl, ah
mov al, dl
xor dl, bl
and al, bl
or dl, al
mov al, dh
xor al, 1
and al, dl
xor dl, 1
and dl, dh
or dl, al
mov al, ch
xor al, ah
xor dl, 1
and al, ch
mov ch, dl
mov ah, al
xor al, cl
xor cl, 1
xor ah, 1
or cl, ah
xor cl, 1
or cl, al
mov eax, ecx
xor al, 1
and cl, al
mov ah, al
and ah, cl
xor cl, al
or cl, ah
mov eax, 0xee3ba78f
xor cl, 1
xor dl, cl
or ch, cl
mov cl, dl
xor cl, ch
test dl, 1
mov edx, 0xee3ba78f
cmovne eax, edi
test ch, 1
cmovne eax, edx
test cl, 1
cmove eax, edi
cmp eax, 0x15e344f3
jle 0x40652b
nop
cmp eax, 0x15e344f4
je 0x406ac7
cmp eax, 0x5a9befe2
jne 0x406520
mov eax, esi
cmp eax, 0x15e344f3
jle 0x40652b
jmp 0x406660
mov eax, 0x5a9befe2
cmp eax, 0x15e344f3
jle 0x40652b
jmp 0x406660
cmp esi, 0x36a45b4e
mov eax, 0xd0cb7121
mov ecx, 0x67d17df5
cmove eax, ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x64], ecx
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov ecx, dword [0x42df60]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, eax
mov esi, eax
not ecx
and esi, 0x3cb66f84
mov edx, ecx
and ecx, 0xc349907b
and edx, eax
or ecx, esi
mov esi, edx
and edx, 0xc349907b
not esi
or eax, esi
and esi, 0x3cb66f84
or edx, esi
not eax
xor edx, ecx
or eax, edx
mov edx, eax
and eax, 0xc75c5060
not edx
mov ecx, edx
and edx, 0x38a3af9f
or ecx, 1
or eax, edx
mov esi, ecx
mov edx, ecx
not esi
and edx, 0xd44fe2eb
and esi, 0x2bb01d14
or esi, edx
mov edx, eax
xor eax, 0x38a3af9e
xor edx, 0x3101000
or ecx, eax
and eax, 0xd44fe2eb
and edx, 0x2bb01d14
not ecx
or edx, eax
xor edx, esi
mov esi, 0x9c0158f1
or ecx, edx
mov eax, ecx
or ecx, 0x22820e0d
not eax
and ecx, 0x73a2ae9d
mov edx, eax
and eax, 0x4111160
or edx, 0x5531b1f0
or eax, ecx
mov ecx, edx
and edx, 0x73a2ae9d
not ecx
and ecx, 0x884c4002
or ecx, edx
xor ecx, eax
mov eax, ecx
and ecx, 0x8955abcc
not eax
and eax, 0x76aa5433
or ecx, eax
mov eax, ecx
xor ecx, 0x239be5c3
xor eax, 0xc0440824
mov edx, ecx
and edx, 0x3f31d31b
and eax, 0xc0ce2ce4
or eax, edx
xor eax, 0x3f31d31b
xor ecx, eax
test ecx, eax
mov eax, dword [0x42df64]
sete cl
setne dl
cmp eax, 0xa
setl ch
cmp eax, 9
setg ah
and ch, cl
and dl, ah
or ch, dl
mov dl, ah
xor dl, cl
mov al, ch
not dl
xor al, ah
or ah, cl
and dl, cl
and al, ch
xor dl, 1
xor al, 1
mov ecx, edx
or dl, ah
xor cl, ah
xor dl, 1
or dl, cl
mov ecx, edx
xor cl, 1
mov ch, cl
mov ah, cl
and ch, dl
xor ah, ch
xor ch, 1
or ch, dl
mov edx, eax
xor ch, 1
and dl, cl
xor cl, al
or ch, ah
or cl, dl
xor ch, al
mov edx, ecx
mov eax, 0x111341cb
xor dl, ch
test cl, 1
cmovne eax, esi
test ch, 1
cmove eax, esi
test dl, 1
mov edx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x20], edx
mov edx, 0x111341cb
mov dword [ebp - 0x1c], esi
cmove eax, edx
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
push 0x429712
push ecx
call fcn.0041558e
add esp, 8
mov edi, eax
push esi
call fcn.00416303
add esp, 4
mov dword [ebp - 0x44], eax
push edi
push esi
push 1
push dword [ebp - 0x44]
call fcn.0041577a
add esp, 0x10
push edi
call fcn.00415439
add esp, 4
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
movzx edx, word [ecx + eax + 6]
lea eax, [ecx + eax + 0xf8]
mov dword [ebp - 0x74], eax
mov eax, 0x5c67cd7a
mov dword [ebp - 0x40], edx
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
push 0x429712
push ecx
call fcn.0041558e
add esp, 8
mov eax, 0xae465df6
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov eax, dword [ebp - 0x50]
mov eax, 0x1605aca5
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
push 0x429712
push ecx
call fcn.0041558e
add esp, 8
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
mov eax, dword [0x42df60]
lea ecx, [eax - 1]
sete byte [ebp - 0x45]
imul ecx, eax
mov eax, ecx
xor eax, 0xe0a83e97
and eax, ecx
not ecx
and ecx, 0xe0a83e97
mov edx, ecx
and edx, eax
xor eax, ecx
or eax, edx
mov ecx, eax
and eax, 0x6c90d71f
not ecx
and ecx, 0x936f28e0
or eax, ecx
mov esi, eax
mov ecx, eax
xor eax, 0xe15441f8
xor ecx, 0x73c71677
mov edi, eax
xor esi, 0x8c38e988
and edi, ecx
and eax, esi
and esi, 0x2ea8bd22
mov edx, edi
and edi, 0xa28b03d0
not edx
mov ebx, edx
and ebx, 0x5d74fc2f
or edi, ebx
mov ebx, eax
and eax, 0xa28b03d0
not ebx
or edx, ebx
and ebx, 0x5d74fc2f
or eax, ebx
not edx
xor eax, edi
or edx, eax
mov eax, edx
and edx, 0x6d6ca871
not eax
and eax, 0x9293578e
or edx, eax
mov eax, ecx
and ecx, 1
and eax, 0xd15742dd
or eax, esi
xor eax, 0x2ea8bd23
or ecx, eax
mov eax, edx
and edx, 0x8d340aa6
not eax
mov esi, eax
or eax, ecx
and esi, 0x72cbf559
not eax
or edx, esi
mov esi, ecx
and ecx, 0x72cbf559
not esi
and esi, 0x8d340aa6
or esi, ecx
xor esi, edx
or eax, esi
mov edx, eax
mov ecx, eax
xor edx, 0x79c95afd
not ecx
and edx, eax
or eax, 0x8636a502
and ecx, 0x11c150c1
mov esi, eax
and esi, 0xe80cab3e
or ecx, esi
mov esi, edx
and edx, 0x17f354c1
not esi
or eax, esi
and esi, 0xe80cab3e
or edx, esi
not eax
mov esi, 0x1c01b337
xor edx, ecx
or eax, edx
mov ecx, eax
and eax, 0x79c95afd
not ecx
and ecx, 0x8636a502
or eax, ecx
mov ecx, eax
and eax, 0x84a96997
not ecx
mov edx, ecx
and edx, 0x7b569668
or eax, edx
xor eax, 0x7b569668
xor ecx, eax
test ecx, eax
setne al
sete cl
cmp dword [0x42df64], 9
setg dl
xor cl, dl
xor al, dl
and cl, dl
mov edx, eax
xor cl, 1
xor dl, 1
mov ah, cl
or cl, dl
xor ah, dl
xor cl, 1
or cl, ah
xor al, cl
or cl, dl
mov edx, eax
xor dl, cl
test al, 1
mov eax, 0x54b2abd7
cmovne eax, esi
test cl, 1
not dl
mov ecx, 0x54b2abd7
cmovne eax, esi
test dl, 1
cmove eax, ecx
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov eax, dword [ebp - 0x50]
mov eax, dword [0x42df60]
mov edi, 0x232f580b
mov esi, 0xa87b0be3
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xe662723a
not eax
and eax, 0x199d8dc5
or ecx, eax
mov edx, ecx
xor ecx, 0x1900881
xor edx, 0x4220220a
and ecx, 0xa5d258b1
and edx, 0x5a2da74e
or edx, ecx
mov eax, edx
xor edx, 0x5a2da74e
xor eax, 0xa5d258b1
and edx, 0xfffffffe
mov ecx, eax
and eax, 1
and ecx, 0xfffffffe
or eax, edx
mov edx, ecx
and edx, eax
xor eax, ecx
or eax, edx
mov ecx, eax
and eax, 0x2c102438
not ecx
mov edx, ecx
or ecx, 0x3c10257b
and edx, 0x10000143
or eax, edx
mov edx, eax
xor eax, 0x10ce4a43
xor edx, 0xc002410
and eax, 0x30de4a6b
and edx, 0xc002510
or edx, eax
mov eax, ecx
and ecx, 0x30de4a6b
not eax
and eax, 0xc3219084
or eax, ecx
mov ecx, dword [0x42df64]
xor eax, edx
mov edx, eax
and eax, 0x3c10257b
not edx
and edx, 0xc3efda84
or eax, edx
sete dl
setne ah
cmp ecx, 0xa
setl dh
cmp ecx, 9
setg cl
mov ch, cl
mov al, cl
xor cl, dl
not cl
and ch, ah
xor al, ah
xor ah, dh
and cl, dl
not ah
or al, ch
and ah, dh
mov edx, ecx
and dl, ah
xor ah, cl
or ah, dl
mov cl, ah
mov dl, ah
xor cl, al
xor al, 1
xor dl, al
or al, ah
xor cl, 1
xor al, 1
or al, cl
mov ecx, eax
xor cl, dl
test cl, 1
cmovne edi, esi
test al, 1
mov eax, 0x232f580b
cmovne eax, edi
test dl, dl
cmove eax, edi
cmp eax, 0x1605aca4
jg 0x4055eb
jmp 0x405670
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00410653
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret