Function at 0x40581b
Capabilities:
Contain obfuscated stackstrings
Get number of processors
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [ebp - 0x500]
add edx, 1
mov dword [ebp - 0x500], edx
push ebx
jmp 0x40560b
and ebx, 0x179a0
pop ebx
push edx
push edx
add esp, 4
xor edx, 0x16168
call fcn.0040562b
add byte [0x394f3746], bh
dec esi
inc esi
aas
add esp, 4
xor edx, 0x15c51
pop edx
mov eax, dword [ebp - 0x500]
sub eax, dword [ebp - 0x3f0]
cmp eax, 0xffffffff
jb 0x40567d
push edi
push ebx
add esp, 4
jmp 0x405650
xor edi, 0xf0f3
jmp 0x40565b
pop edi
push edx
and edx, 0x8337
jmp 0x40566b
or edx, 0x170b1
add edx, 0x11c56
pop edx
jmp 0x4058ab
mov dword [ebp - 0xc88], 7
mov ecx, dword [ebp - 0x500]
mov dword [ebp - 0xac8], ecx
push edx
push eax
add esp, 4
xor edx, 0x1523c
pop edx
push ebx
sub ebx, 0x2a6
xor ebx, 0x15c44
pop ebx
push ecx
push ecx
add esp, 4
sub ecx, 0x779c
sub ecx, 0xd0a7
add ecx, 0xac0a
pop ecx
mov edx, dword [ebp - 0x15a0]
mov dword [ebp - 0xac4], edx
mov dword [ebp - 0xc8c], 0
mov eax, dword [ebp - 0x500]
cmp eax, dword [ebp - 0x15a0]
jne 0x40572c
push esi
sub esi, 0x787c
and esi, 0x7a81
pop esi
push esi
push esi
add esp, 4
and esi, 0x653
or esi, 0x3c3
sub esi, 0x7adf
pop esi
push esi
push eax
add esp, 4
and esi, 0xfb
pop esi
mov ecx, dword [ebp - 0xc8c]
mov dword [ebp - 0x15d8], ecx
jmp 0x40585d
cmp dword [ebp - 0xc88], 0
jle 0x405851
push ecx
push esi
add esp, 4
xor ecx, 0xcc08
xor ecx, 0x177d0
and ecx, 0x142e2
pop ecx
push edx
sub edx, 0x1fb0
pop edx
push ecx
call 0x405767
add byte [ecx + 0x46], al
inc esp
aas
inc edx
xor edi, dword [ebx]
add esp, 4
pop ecx
mov edx, dword [ebp - 0xac8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xac4]
movzx edx, byte [ecx]
cmp eax, edx
je 0x4057ed
push ecx
or ecx, 0x156be
or ecx, 0xcfb4
jmp 0x405797
pop ecx
push ecx
push edx
add esp, 4
xor ecx, 0xe1f1
call 0x4057af
add byte [edx], bh
cmp al, 0x4b
cmp bh, byte [esi]
inc edi
add esp, 4
pop ecx
mov eax, dword [ebp - 0xac8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xac4]
movzx eax, byte [edx]
cmp ecx, eax
jle 0x4057d5
mov dword [ebp - 0x15d4], 1
jmp 0x4057df
mov dword [ebp - 0x15d4], 0xffffffff
mov ecx, dword [ebp - 0x15d4]
mov dword [ebp - 0xc8c], ecx
jmp 0x405851
push edx
push eax
add esp, 4
sub edx, 0xbf19
xor edx, 0x9daa
sub edx, 0x268d
pop edx
push ebx
or ebx, 0x161ac
call 0x40581b
add byte [ecx + 0x47], cl
dec ebp
xor eax, 0x353c4d4f
dec edi
dec ebp
cmp al, 0x35
cmp eax, dword [ebx - 0x74a4fb3c]
xchg ebp, eax
js 0x405816
invalid
mov edx, dword [ebp - 0xc8c]
mov dword [ebp - 0x15d8], edx
cmp dword [ebp - 0x15d8], 0
jne 0x4058a6
push esi
push esi
add esp, 4
xor esi, 0x18200
add esi, 0x92b2
jmp 0x40587c
or esi, 0xe6a1
pop esi
push edi
push eax
add esp, 4
jmp 0x405891
or edi, 0x8885
pop edi
mov eax, dword [ebp - 0x500]
mov dword [ebp - 0xac0], eax
jmp 0x4058e7
jmp 0x4055f4
push edi
xor edi, 0xf829
add edi, 0xd9c8
jmp 0x4058be
pop edi
push edx
add edx, 0x16d04
add edx, 0x37e8
jmp 0x4058d4
pop edx
push edi
sub edi, 0x178c8
pop edi
mov dword [ebp - 0xac0], 0
push edi
push esi
add esp, 4
xor edi, 0xc274
sub edi, 0x1635f
sub edi, 0x2a96
pop edi
push edi
or edi, 0x11480
xor edi, 0x8402
xor edi, 0x10592
sub edi, 0xdd73
pop edi
mov byte [ebp - 0x878], 0x45
mov byte [ebp - 0x877], 0x78
mov byte [ebp - 0x876], 0x69
mov byte [ebp - 0x875], 0x74
mov byte [ebp - 0x874], 0x50
mov byte [ebp - 0x873], 0x72
mov byte [ebp - 0x872], 0x6f
mov byte [ebp - 0x871], 0x63
mov byte [ebp - 0x870], 0x65
mov byte [ebp - 0x86f], 0x73
mov byte [ebp - 0x86e], 0x73
mov byte [ebp - 0x86d], 0
push ebx
push edi
add esp, 4
sub ebx, 0x807b
or ebx, 0x4383
and ebx, 0x5ebe
pop ebx
push edi
or edi, 0x78cb
and edi, 0x70ca
sub edi, 0xca39
or edi, 0xee2c
pop edi
mov ecx, 0x6b
mov word [ebp - 0x173c], cx
mov edx, 0x65
mov word [ebp - 0x173a], dx
mov eax, 0x72
mov word [ebp - 0x1738], ax
mov ecx, 0x6e
mov word [ebp - 0x1736], cx
mov edx, 0x65
mov word [ebp - 0x1734], dx
mov eax, 0x6c
mov word [ebp - 0x1732], ax
mov ecx, 0x33
mov word [ebp - 0x1730], cx
mov edx, 0x32
mov word [ebp - 0x172e], dx
mov eax, 0x2e
mov word [ebp - 0x172c], ax
mov ecx, 0x64
mov word [ebp - 0x172a], cx
mov edx, 0x6c
mov word [ebp - 0x1728], dx
mov eax, 0x6c
mov word [ebp - 0x1726], ax
xor ecx, ecx
mov word [ebp - 0x1724], cx
push edx
sub edx, 0x174bf
or edx, 0x10adc
jmp 0x405a4c
pop edx
push edi
call 0x405a5a
add byte [ebp + eax*2 + 0x3e], al
cmp dh, byte [edx]
aas
add esp, 4
add edi, 0x10bdb
xor edi, 0x105a8
pop edi
push edi
call 0x405a7a
add byte [edx + 0x45], al
dec esi
cmp cl, byte [edx + esi + 0x46]
dec ebp
xor al, 0x83
les eax, [edi + ebx*2]
push ecx
push ecx
add esp, 4
xor ecx, 0x9735
xor ecx, 0x42f9
pop ecx
push ecx
push eax
add esp, 4
xor ecx, 0xed97
pop ecx
mov edx, dword fs:[0x18]
mov dword [ebp - 0x19b8], edx
mov eax, dword [ebp - 0x19b8]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x19bc], ecx
mov edx, dword [ebp - 0x19bc]
mov dword [ebp - 0x15dc], edx
push edi
sub edi, 0x10ad1
call 0x405adb
add byte [ebp + 0x38], cl
inc ebx
xor eax, 0x4c4e3d3a
dec eax
cmp al, 0x83
les eax, [edi + ebx*2]
push ebx
and ebx, 0x10dff
jmp 0x405aef
add ebx, 0x4f4c
pop ebx
cmp dword [ebp - 0x15dc], 0
jne 0x405b0e
mov dword [ebp - 0x31c], 0
jmp 0x405dca
mov eax, dword [ebp - 0x15dc]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xc98], edx
push esi
xor esi, 0x1269b
xor esi, 0xd961
add esi, 0x148da
pop esi
push edx
push edx
add esp, 4
xor edx, 0x80d4
sub edx, 0x90f4
or edx, 0x1462e
or edx, 0xcd20
pop edx
cmp dword [ebp - 0xc98], 0
jne 0x405b6a
mov dword [ebp - 0x31c], 0
jmp 0x405dca
mov eax, dword [ebp - 0xc98]
mov dword [ebp - 0x504], eax
push edx
xor edx, 0x21ec
add edx, 0x7f
or edx, 0x8e0b
pop edx
push edi
push esi
add esp, 4
or edi, 0xf351
call 0x405ba4
add byte [ebx], dh
inc esp
inc edx
aaa
inc esi
inc eax
cmp al, byte [edx + 0x48]
add esp, 4
pop edi
lea ecx, [ebp - 0x173c]
mov dword [ebp - 0xc94], ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xc90], eax
xor ecx, ecx
mov word [ebp - 0x210], cx
xor edx, edx
mov word [ebp - 0x10c], dx
push edx
push esi
add esp, 4
xor edx, 0x14936
sub edx, 0x1693b
pop edx
push eax
push edx
add esp, 4
add eax, 0x16914
xor eax, 0x24ed
add eax, 0xcc83
pop eax
push ecx
or ecx, 0x1083a
pop ecx
mov eax, dword [ebp - 0xc90]
mov cx, word [eax]
mov word [ebp - 0x1032], cx
mov edx, dword [ebp - 0xc90]
add edx, 2
mov dword [ebp - 0xc90], edx
mov ax, word [ebp - 0x1032]
mov word [ebp - 0x210], ax
mov ecx, dword [ebp - 0xc94]
mov dx, word [ecx]
mov word [ebp - 0x1034], dx
mov eax, dword [ebp - 0xc94]
add eax, 2
mov dword [ebp - 0xc94], eax
mov cx, word [ebp - 0x1034]
mov word [ebp - 0x10c], cx
push eax
or eax, 0x8778
sub eax, 0x4326
add eax, 0x11fbb
or eax, 0x122fe
pop eax
push esi
push ebx
add esp, 4
and esi, 0x3366
add esi, 0x15466
or esi, 0x3804
add byte [eax], al
pop esi
movzx edx, word [ebp - 0x10c]
test edx, edx
jne 0x405cb6
movzx eax, word [ebp - 0x210]
movzx ecx, word [ebp - 0x10c]
sub eax, ecx
mov dword [ebp - 0x15e4], eax
jmp 0x405d19
movzx edx, word [ebp - 0x210]
movzx eax, word [ebp - 0x10c]
cmp edx, eax
je 0x405bd5
movzx ecx, word [ebp - 0x210]
xor ecx, 0x20
movzx edx, word [ebp - 0x10c]
cmp ecx, edx
je 0x405bd5
movzx eax, word [ebp - 0x210]
movzx ecx, word [ebp - 0x10c]
cmp eax, ecx
jge 0x405d03
mov dword [ebp - 0x15e0], 0xffffffff
jmp 0x405d0d
mov dword [ebp - 0x15e0], 1
mov edx, dword [ebp - 0x15e0]
mov dword [ebp - 0x15e4], edx
cmp dword [ebp - 0x15e4], 0
jne 0x405d62
push eax
sub eax, 0x91c4
pop eax
push edx
push edi
add esp, 4
sub edx, 0x23dd
jmp 0x405d3b
xor edx, 0x14df9
or edx, 0x1388f
pop edx
push edi
push esi
add esp, 4
or edi, 0x4c17
pop edi
mov eax, dword [ebp - 0x504]
mov dword [ebp - 0x31c], eax
jmp 0x405dca
push ecx
add ecx, 0xcd3a
call 0x405d79
add byte [edi + 0x40], al
dec esp
push eax
dec ebp
xor ecx, dword [edx + 0x35]
inc esi
cmp eax, 0x8104c483
rcl dword [edx + ecx*8], 0
or ecx, 0x10be7
pop ecx
push eax
jmp 0x405d93
pop eax
mov ecx, dword [ebp - 0x504]
mov edx, dword [ecx]
mov dword [ebp - 0x504], edx
mov eax, dword [ebp - 0x504]
cmp eax, dword [ebp - 0xc98]
je 0x405dc0
mov ecx, dword [ebp - 0x504]
cmp dword [ecx + 0x30], 0
jne 0x405b76
mov dword [ebp - 0x31c], 0
push eax
xor eax, 0x441d
or eax, 0xedc7
pop eax
push esi
push eax
add esp, 4
call 0x405dec
add byte [edi + 0x3f], cl
inc esi
inc eax
inc ecx
xor al, byte ss:[ebp + ecx*2 - 0x7d]
les eax, [esi + ebx*2]
push esi
push ebx
add esp, 4
xor esi, 0x2422
pop esi
cmp dword [ebp - 0x31c], 0
jne 0x406715
mov edx, 0x6b
mov word [ebp - 0x1758], dx
mov eax, 0x65
mov word [ebp - 0x1756], ax
mov ecx, 0x72
mov word [ebp - 0x1754], cx
mov edx, 0x6e
mov word [ebp - 0x1752], dx
mov eax, 0x65
mov word [ebp - 0x1750], ax
mov ecx, 0x6c
mov word [ebp - 0x174e], cx
mov edx, 0x33
mov word [ebp - 0x174c], dx
mov eax, 0x32
mov word [ebp - 0x174a], ax
mov ecx, 0x2e
mov word [ebp - 0x1748], cx
mov edx, 0x64
mov word [ebp - 0x1746], dx
mov eax, 0x6c
mov word [ebp - 0x1744], ax
mov ecx, 0x6c
mov word [ebp - 0x1742], cx
xor edx, edx
mov word [ebp - 0x1740], dx
push eax
add eax, 0xae72
pop eax
push esi
jmp 0x405eb1
add esi, 0x13763
add esi, 0xbc4
pop esi
push esi
push edx
add esp, 4
call 0x405ed0
add byte [esi + ecx*2], bh
aas
dec edi
aas
inc esi
aaa
add esp, 4
pop esi
mov byte [ebp - 0x894], 0x4c
mov byte [ebp - 0x893], 0x6f
mov byte [ebp - 0x892], 0x61
mov byte [ebp - 0x891], 0x64
mov byte [ebp - 0x890], 0x4c
mov byte [ebp - 0x88f], 0x69
mov byte [ebp - 0x88e], 0x62
mov byte [ebp - 0x88d], 0x72
mov byte [ebp - 0x88c], 0x61
mov byte [ebp - 0x88b], 0x72
mov byte [ebp - 0x88a], 0x79
mov byte [ebp - 0x889], 0x57
mov byte [ebp - 0x888], 0
mov eax, dword fs:[0x18]
mov dword [ebp - 0x19c0], eax
mov ecx, dword [ebp - 0x19c0]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x19c4], edx
mov eax, dword [ebp - 0x19c4]
mov dword [ebp - 0x15e8], eax
push ecx
push eax
add esp, 4
add ecx, 0xbe91
pop ecx
push esi
push edi
add esp, 4
add esi, 0xa512
and esi, 0x79b3
pop esi
push eax
xor eax, 0x14a0f
and eax, 0x1efc
xor eax, 0xd25e
pop eax
cmp dword [ebp - 0x15e8], 0
jne 0x405fa0
mov dword [ebp - 0x750], 0
jmp 0x40625c
mov ecx, dword [ebp - 0x15e8]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xca4], eax
push edi
push ebx
add esp, 4
xor edi, 0x7dae
pop edi
push ebx
or ebx, 0xaf01
xor ebx, 0xbf98
pop ebx
push edx
and edx, 0x3a2b
call 0x405fe0
add byte [esi + 0x49], cl
dec ebp
cmp al, 0x43
dec edx
add esp, 4
pop edx
cmp dword [ebp - 0xca4], 0
jne 0x405ffc
mov dword [ebp - 0x750], 0
jmp 0x40625c
mov ecx, dword [ebp - 0xca4]
mov dword [ebp - 0x508], ecx
push eax
push ecx
add esp, 4
or eax, 0x12dcd
sub eax, 0x1815c
pop eax
push ebx
push ecx
add esp, 4
xor ebx, 0x179bd
pop ebx
push edi
push esi
add esp, 4
and edi, 0x5e16
pop edi
push edx
xor edx, 0x16a99
pop edx
lea edx, [ebp - 0x1758]
mov dword [ebp - 0xca0], edx
mov eax, dword [ebp - 0x508]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc9c], ecx
xor edx, edx
mov word [ebp - 0x214], dx
xor eax, eax
mov word [ebp - 0x110], ax
push edx
add edx, 0xb9c3
and edx, 0x5a1c
add edx, 0x2673
pop edx
push esi
push edi
add esp, 4
add esi, 0xb97a
add esi, 0x7a92
and esi, 0x88ac
sub esi, 0x1214d
pop esi
mov ecx, dword [ebp - 0xc9c]
mov dx, word [ecx]
mov word [ebp - 0x1036], dx
mov eax, dword [ebp - 0xc9c]
add eax, 2
mov dword [ebp - 0xc9c], eax
mov cx, word [ebp - 0x1036]
mov word [ebp - 0x214], cx
mov edx, dword [ebp - 0xca0]
mov ax, word [edx]
mov word [ebp - 0x1038], ax
mov ecx, dword [ebp - 0xca0]
add ecx, 2
mov dword [ebp - 0xca0], ecx
mov dx, word [ebp - 0x1038]
mov word [ebp - 0x110], dx
push esi
add esi, 0x86be
add esi, 0x67f6
xor esi, 0x8e18
pop esi
push ebx
or ebx, 0xafac
pop ebx
push edi
jmp 0x406118
sub edi, 0xa594
add edi, 0x8fec
pop edi
movzx eax, word [ebp - 0x110]
test eax, eax
jne 0x406148
movzx ecx, word [ebp - 0x214]
movzx edx, word [ebp - 0x110]
sub ecx, edx
mov dword [ebp - 0x15f0], ecx
jmp 0x4061ab
movzx eax, word [ebp - 0x214]
movzx ecx, word [ebp - 0x110]
cmp eax, ecx
je 0x406067
movzx edx, word [ebp - 0x214]
xor edx, 0x20
movzx eax, word [ebp - 0x110]
cmp edx, eax
je 0x406067
movzx ecx, word [ebp - 0x214]
movzx edx, word [ebp - 0x110]
cmp ecx, edx
jge 0x406195
mov dword [ebp - 0x15ec], 0xffffffff
jmp 0x40619f
mov dword [ebp - 0x15ec], 1
mov eax, dword [ebp - 0x15ec]
mov dword [ebp - 0x15f0], eax
cmp dword [ebp - 0x15f0], 0
jne 0x4061f4
push ecx
push eax
add esp, 4
and ecx, 0x5258
sub ecx, 0xe8b4
and ecx, 0x15152
pop ecx
push edi
xor edi, 0xcb21
add edi, 0x18054
or edi, 0x376e
sub edi, 0x186d
pop edi
mov ecx, dword [ebp - 0x508]
mov dword [ebp - 0x750], ecx
jmp 0x40625c
push edi
push edi
add esp, 4
call 0x406208
add byte [eax + 0x40], al
cmp byte [edx], bh
dec eax
xor al, 0x40
cmp al, byte [ebx - 0x187efb3c]
rcr byte [ecx + eax], 0x5f
push edi
or edi, 0xa2c
pop edi
push eax
push ecx
add esp, 4
or eax, 0x4d5a
pop eax
mov edx, dword [ebp - 0x508]
mov eax, dword [edx]
mov dword [ebp - 0x508], eax
mov ecx, dword [ebp - 0x508]
cmp ecx, dword [ebp - 0xca4]
je 0x406252
mov edx, dword [ebp - 0x508]
cmp dword [edx + 0x30], 0
jne 0x406008
mov dword [ebp - 0x750], 0
push esi
xor esi, 0x1561d
sub esi, 0x1257a
and esi, 0x4bee
pop esi
push ebx
sub ebx, 0xc6c3
pop ebx
push eax
jmp 0x40627f
sub eax, 0xec5c
jmp 0x40628d
pop eax
cmp dword [ebp - 0x750], 0
jne 0x4062d8
push eax
push edi
add esp, 4
add eax, 0x722e
call 0x4062b1
add byte [esi + esi], dh
inc ebx
inc edx
push eax
cmp al, byte [eax + 0x3d]
add esp, 4
sub eax, 0xa50c
or eax, 0x13d35
pop eax
push edx
sub edx, 0x11f3b
pop edx
mov dword [ebp - 0x79c], 0
jmp 0x406dff
push edx
jmp 0x4062e0
add edx, 0x1803e
add edx, 0x11751
jmp 0x4062f3
pop edx
push esi
push ecx
add esp, 4
call 0x406306
add byte [edx + 0x43], al
push eax
dec esi
inc ebp
inc edi
xor eax, 0x5e04c483
mov eax, dword [ebp - 0x750]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x320], ecx
mov dword [ebp - 0x760], 0
mov edx, dword [ebp - 0x320]
mov dword [ebp - 0x15f4], edx
cmp dword [ebp - 0x15f4], 0
jne 0x406349
mov eax, dword [ebp - 0x760]
mov dword [ebp - 0x3f4], eax
jmp 0x40663a
mov ecx, dword [ebp - 0x15f4]
mov edx, dword [ebp - 0x320]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x15f8], edx
jne 0x406371
mov eax, dword [ebp - 0x760]
mov dword [ebp - 0x3f4], eax
jmp 0x40663a
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x15f8]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x15fc], ecx
cmp dword [ebp - 0x15fc], 0
jne 0x4063a3
mov edx, dword [ebp - 0x760]
mov dword [ebp - 0x3f4], edx
jmp 0x40663a
mov eax, dword [ebp - 0x320]
add eax, dword [ebp - 0x15fc]
mov dword [ebp - 0x754], eax
jne 0x4063c8
mov ecx, dword [ebp - 0x760]
mov dword [ebp - 0x3f4], ecx
jmp 0x40663a
mov edx, dword [ebp - 0x754]
mov eax, dword [ebp - 0x320]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x19c8], eax
mov ecx, dword [ebp - 0x754]
mov edx, dword [ebp - 0x320]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x19cc], edx
mov eax, dword [ebp - 0x754]
mov ecx, dword [ebp - 0x320]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x19d0], ecx
mov dword [ebp - 0x758], 0
jmp 0x406422
mov edx, dword [ebp - 0x758]
add edx, 1
mov dword [ebp - 0x758], edx
mov eax, dword [ebp - 0x754]
mov ecx, dword [ebp - 0x758]
cmp ecx, dword [eax + 0x18]
jae 0x40662e
mov edx, dword [ebp - 0x758]
mov eax, dword [ebp - 0x19c8]
mov ecx, dword [ebp - 0x320]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x75c], ecx
mov edx, dword [ebp - 0x758]
mov eax, dword [ebp - 0x19cc]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x19d0]
mov eax, dword [ebp - 0x320]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x19d4], eax
mov dword [ebp - 0x198], 0
jmp 0x406492
mov ecx, dword [ebp - 0x198]
add ecx, 1
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x75c]
add edx, dword [ebp - 0x198]
movsx eax, byte [edx]
test eax, eax
je 0x406544
mov ecx, dword [ebp - 0x198]
movsx edx, byte [ebp + ecx - 0x894]
test edx, edx
je 0x406544
push esi
add esi, 0x1528c
xor esi, 0x2a87
add esi, 0xe61
sub esi, 0xe5af
pop esi
push ebx
push edi
add esp, 4
sub ebx, 0xaceb
or ebx, 0x15a42
add ebx, 0x7828
pop ebx
mov eax, dword [ebp - 0x75c]
add eax, dword [ebp - 0x198]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x198]
movsx eax, byte [ebp + edx - 0x894]
cmp ecx, eax
je 0x406536
mov ecx, dword [ebp - 0x75c]
add ecx, dword [ebp - 0x198]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x198]
movsx ecx, byte [ebp + eax - 0x894]
cmp edx, ecx
jne 0x40653d
jmp 0x406483
jmp 0x406544
push ecx
or ecx, 0xb24
xor ecx, 0x8c8c
sub ecx, 0x162a1
pop ecx
push eax
jmp 0x40655e
jmp 0x406567
pop eax
push esi
jmp 0x40656f
add esi, 0x17a93
pop esi
mov edx, dword [ebp - 0x75c]
add edx, dword [ebp - 0x198]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x198]
movsx edx, byte [ebp + ecx - 0x894]
cmp eax, edx
jne 0x4065a3
mov dword [ebp - 0xca8], 0
jmp 0x406612
push edx
push edx
add esp, 4
xor edx, 0x154f6
pop edx
push ebx
call 0x4065bf
add byte [ecx + 0x3a], al
inc esi
cmp al, 0x35
xor al, 0x35
inc ebp
inc esp
add esp, 4
sub ebx, 0xbd79
pop ebx
push ebx
push eax
add esp, 4
and ebx, 0x15220
pop ebx
mov eax, dword [ebp - 0x75c]
add eax, dword [ebp - 0x198]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x198]
movsx eax, byte [ebp + edx - 0x894]
or eax, 0x20
cmp ecx, eax
jge 0x406608
mov dword [ebp - 0xca8], 0xffffffff
jmp 0x406612
mov dword [ebp - 0xca8], 1
cmp dword [ebp - 0xca8], 0
jne 0x406629
mov ecx, dword [ebp - 0x19d4]
mov dword [ebp - 0x3f4], ecx
jmp 0x40663a
jmp 0x406413
mov edx, dword [ebp - 0x760]
mov dword [ebp - 0x3f4], edx
cmp dword [ebp - 0x3f4], 0
je 0x406715
push ecx
sub ecx, 0xa415
pop ecx
push edx
push esi
add esp, 4
xor edx, 0xe850
call 0x406669
add byte [esp + esi + 0x4f], cl
inc ebx
dec esp
inc edi
inc edx
inc ebx
xor eax, dword [ebx - 0x3d7efb3c]
mov edx, dword [eax + eax - 0x11157f00]
xor dword [eax], eax
add byte [edx - 0x75], bl
test dword [esp + edi*8], ecx
invalid
push ecx
push esi
add esp, 4
or ecx, 0x10826
jmp 0x406728
jmp 0x40672d
add ecx, 0x12028
pop ecx
push eax
call 0x406743
add byte [edi], dh
dec esp
inc eax
aas
push eax
cmp eax, dword [edi - 0x7d]
les eax, [eax + ebx*2]
mov eax, dword fs:[0x18]
mov dword [ebp - 0x19e0], eax
mov ecx, dword [ebp - 0x19e0]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x19e4], edx
mov eax, dword [ebp - 0x19e4]
mov dword [ebp - 0x1600], eax
push ebx
push esi
add esp, 4
jmp 0x40677b
pop ebx
push ebx
push edi
add esp, 4
sub ebx, 0x16c48
and ebx, 0xc1d8
xor ebx, 0xfe89
pop ebx
push ecx
push edx
add esp, 4
and ecx, 0x1153e
pop ecx
cmp dword [ebp - 0x1600], 0
jne 0x4067b8
mov dword [ebp - 0x31c], 0
jmp 0x406a5f
mov ecx, dword [ebp - 0x1600]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xcb4], eax
push edi
push edx
add esp, 4
add edi, 0x11f9f
sub edi, 0xd270
and edi, 0xa740
and edi, 0x14b09
pop edi
push edi
or edi, 0x15fdf
and edi, 0xedeb
xor edi, 0xe22a
pop edi
cmp dword [ebp - 0xcb4], 0
jne 0x406814
mov dword [ebp - 0x31c], 0
jmp 0x406a5f
mov ecx, dword [ebp - 0xcb4]
mov dword [ebp - 0x50c], ecx
push ecx
push esi
add esp, 4
jmp 0x40682b
or ecx, 0x18612
sub ecx, 0x59f
and ecx, 0xb79d
pop ecx
push edx
or edx, 0x1271e
add edx, 0x144e4
or edx, 0x1bb6
pop edx
lea edx, [ebp - 0x173c]
mov dword [ebp - 0xcb0], edx
mov eax, dword [ebp - 0x50c]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcac], ecx
xor edx, edx
mov word [ebp - 0x218], dx
xor eax, eax
mov word [ebp - 0x34], ax
push esi
add esi, 0x3c31
call 0x406890
add byte [ebp + 0x3d], cl
inc eax
xor edi, dword [edx]
xor esi, dword [esi]
add esp, 4
pop esi
push edx
push edx
add esp, 4
add edx, 0x10f87
and edx, 0x125db
pop edx
push edx
or edx, 0xaad6
pop edx
mov ecx, dword [ebp - 0xcac]
mov dx, word [ecx]
mov word [ebp - 0x103a], dx
mov eax, dword [ebp - 0xcac]
add eax, 2
mov dword [ebp - 0xcac], eax
mov cx, word [ebp - 0x103a]
mov word [ebp - 0x218], cx
mov edx, dword [ebp - 0xcb0]
mov ax, word [edx]
mov word [ebp - 0x103c], ax
mov ecx, dword [ebp - 0xcb0]
add ecx, 2
mov dword [ebp - 0xcb0], ecx
mov dx, word [ebp - 0x103c]
mov word [ebp - 0x34], dx
push eax
push esi
add esp, 4
add eax, 0x7207
or eax, 0x1599
or eax, 0x17078
jmp 0x406924
pop eax
push edi
push ecx
add esp, 4
xor edi, 0x1548b
and edi, 0x24cf
pop edi
movzx eax, word [ebp - 0x34]
test eax, eax
jne 0x406954
movzx ecx, word [ebp - 0x218]
movzx edx, word [ebp - 0x34]
sub ecx, edx
mov dword [ebp - 0x1608], ecx
jmp 0x4069ae
movzx eax, word [ebp - 0x218]
movzx ecx, word [ebp - 0x34]
cmp eax, ecx
je 0x40687c
movzx edx, word [ebp - 0x218]
invalid
invalid