Function at 0x40ac47
Capabilities:
Encode data using xor

Disassembly:
add esp, 4
call 0x409801
add byte [edi], bh
dec esi
dec edx
cmp dword [esi], esi
xor edi, dword [ebx]
inc ebp
add esp, 4
pop esi
cmp dword [ebp - 0x161c], 0
jne 0x40981d
mov dword [ebp - 0x2f4], 0
jmp 0x409ac4
mov ecx, dword [ebp - 0x161c]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xcc8], eax
push esi
jmp 0x409838
jmp 0x40983e
pop esi
push ebx
xor ebx, 0xa89d
xor ebx, 0x1638e
pop ebx
push esi
push edx
add esp, 4
sub esi, 0x1167c
pop esi
push ecx
and ecx, 0x175f5
pop ecx
cmp dword [ebp - 0xcc8], 0
jne 0x409879
mov dword [ebp - 0x2f4], 0
jmp 0x409ac4
mov ecx, dword [ebp - 0xcc8]
mov dword [ebp - 0x518], ecx
push edi
push esi
add esp, 4
xor edi, 0x2658
xor edi, 0xfeb6
sub edi, 0xe9a
pop edi
push ecx
or ecx, 0x15c70
xor ecx, 0xcdb0
add ecx, 0x1238e
sub ecx, 0xc46d
pop ecx
lea edx, [ebp - 0x1740]
mov dword [ebp - 0xcc4], edx
mov eax, dword [ebp - 0x518]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcc0], ecx
xor edx, edx
mov word [ebp - 0x21c], dx
xor eax, eax
mov word [ebp - 0x38], ax
push eax
push esi
add esp, 4
jmp 0x4098ed
pop eax
push ecx
or ecx, 0xc3b4
call 0x409903
add byte [ecx + 0x33], al
dec ecx
dec ecx
aas
inc eax
aas
inc eax
add esp, 4
or ecx, 0x13415
add ecx, 0x1957
pop ecx
mov ecx, dword [ebp - 0xcc0]
mov dx, word [ecx]
mov word [ebp - 0x1042], dx
mov eax, dword [ebp - 0xcc0]
add eax, 2
mov dword [ebp - 0xcc0], eax
mov cx, word [ebp - 0x1042]
mov word [ebp - 0x21c], cx
mov edx, dword [ebp - 0xcc4]
mov ax, word [edx]
mov word [ebp - 0x1044], ax
mov ecx, dword [ebp - 0xcc4]
add ecx, 2
mov dword [ebp - 0xcc4], ecx
mov dx, word [ebp - 0x1044]
mov word [ebp - 0x38], dx
push ecx
sub ecx, 0xb97a
jmp 0x409977
pop ecx
push edx
call 0x409986
add byte [edx], bh
aas
dec esi
dec esp
dec eax
dec esp
inc edi
add esp, 4
call 0x409998
add byte [0x4b4b4d43], bh
inc eax
inc edi
cmp eax, 0x5a04c483
movzx eax, word [ebp - 0x38]
test eax, eax
jne 0x4099b9
movzx ecx, word [ebp - 0x21c]
movzx edx, word [ebp - 0x38]
sub ecx, edx
mov dword [ebp - 0x1624], ecx
jmp 0x409a13
movzx eax, word [ebp - 0x21c]
movzx ecx, word [ebp - 0x38]
cmp eax, ecx
je 0x4098e1
movzx edx, word [ebp - 0x21c]
xor edx, 0x20
movzx eax, word [ebp - 0x38]
cmp edx, eax
je 0x4098e1
movzx ecx, word [ebp - 0x21c]
movzx edx, word [ebp - 0x38]
cmp ecx, edx
jge 0x4099fd
mov dword [ebp - 0x1620], 0xffffffff
jmp 0x409a07
mov dword [ebp - 0x1620], 1
mov eax, dword [ebp - 0x1620]
mov dword [ebp - 0x1624], eax
cmp dword [ebp - 0x1624], 0
jne 0x409a5c
push ebx
push esi
add esp, 4
call 0x409a30
add byte [esi + 0x3e], al
dec ebx
xor al, 0x42
inc ecx
cmp bh, byte [0x4c48333]
sub ebx, 0x109c0
pop ebx
push esi
or esi, 0xb5c4
and esi, 0xe3ce
and esi, 0x17208
pop esi
mov ecx, dword [ebp - 0x518]
mov dword [ebp - 0x2f4], ecx
jmp 0x409ac4
push eax
push ecx
add esp, 4
sub eax, 0x9c6
and eax, 0x664c
pop eax
push esi
xor esi, 0x15b54
or esi, 0xd18e
pop esi
push ebx
push edi
add esp, 4
or ebx, 0x117f6
sub ebx, 0x17670
pop ebx
mov edx, dword [ebp - 0x518]
mov eax, dword [edx]
mov dword [ebp - 0x518], eax
mov ecx, dword [ebp - 0x518]
cmp ecx, dword [ebp - 0xcc8]
je 0x409aba
mov edx, dword [ebp - 0x518]
cmp dword [edx + 0x30], 0
jne 0x409885
mov dword [ebp - 0x2f4], 0
push ecx
push esi
add esp, 4
sub ecx, 0x17d7d
add ecx, 0x103f4
pop ecx
push ebx
push edx
add esp, 4
and ebx, 0x107f9
pop ebx
push edi
push eax
add esp, 4
add edi, 0x16b6f
pop edi
push esi
and esi, 0x122b6
pop esi
cmp dword [ebp - 0x2f4], 0
jne 0x40a3fb
mov eax, 0x6b
mov word [ebp - 0x17c8], ax
mov ecx, 0x65
mov word [ebp - 0x17c6], cx
mov edx, 0x72
mov word [ebp - 0x17c4], dx
mov eax, 0x6e
mov word [ebp - 0x17c2], ax
mov ecx, 0x65
mov word [ebp - 0x17c0], cx
mov edx, 0x6c
mov word [ebp - 0x17be], dx
mov eax, 0x33
mov word [ebp - 0x17bc], ax
mov ecx, 0x32
mov word [ebp - 0x17ba], cx
mov edx, 0x2e
mov word [ebp - 0x17b8], dx
mov eax, 0x64
mov word [ebp - 0x17b6], ax
mov ecx, 0x6c
mov word [ebp - 0x17b4], cx
mov edx, 0x6c
mov word [ebp - 0x17b2], dx
xor eax, eax
mov word [ebp - 0x17b0], ax
push esi
push eax
add esp, 4
jmp 0x409ba7
call 0x409bb3
add byte [edx], dh
dec ebx
push eax
cmp eax, dword ds:[ebx + 0x9e804c4]
add byte [eax], al
add byte [eax], al
inc eax
dec ecx
cmp dword ss:[esp + eax*2], edi
inc edi
dec ebx
add esp, 4
add esi, 0x7a59
pop esi
mov byte [ebp - 0x8a8], 0x4c
mov byte [ebp - 0x8a7], 0x6f
mov byte [ebp - 0x8a6], 0x61
mov byte [ebp - 0x8a5], 0x64
mov byte [ebp - 0x8a4], 0x4c
mov byte [ebp - 0x8a3], 0x69
mov byte [ebp - 0x8a2], 0x62
mov byte [ebp - 0x8a1], 0x72
mov byte [ebp - 0x8a0], 0x61
mov byte [ebp - 0x89f], 0x72
mov byte [ebp - 0x89e], 0x79
mov byte [ebp - 0x89d], 0x57
mov byte [ebp - 0x89c], 0
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x19d0], ecx
mov edx, dword [ebp - 0x19d0]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19d4], eax
mov ecx, dword [ebp - 0x19d4]
mov dword [ebp - 0x1628], ecx
push edx
push edi
add esp, 4
sub edx, 0x18318
add edx, 0xd632
and edx, 0x2e55
and edx, 0x11e9a
pop edx
push ebx
sub ebx, 0x15ef0
sub ebx, 0x5d74
sub ebx, 0x2a24
pop ebx
cmp dword [ebp - 0x1628], 0
jne 0x409c9b
mov dword [ebp - 0x778], 0
jmp 0x409f42
mov edx, dword [ebp - 0x1628]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xcd4], ecx
push ecx
push esi
add esp, 4
and ecx, 0x6241
pop ecx
push esi
add esi, 0x4078
pop esi
push edi
jmp 0x409ccb
call 0x409cdb
add byte [edi], bh
dec ebx
dec edi
aas
inc esp
dec edi
cmp eax, 0xc4834d43
add al, 0x5f
cmp dword [ebp - 0xcd4], 0
jne 0x409cf7
mov dword [ebp - 0x778], 0
jmp 0x409f42
mov edx, dword [ebp - 0xcd4]
mov dword [ebp - 0x51c], edx
push ecx
call 0x409d13
add byte [edx + ecx*2], bh
inc esi
aaa
cmp dl, byte [eax + 0x32]
inc edx
xor al, 0x83
les eax, [ecx + eax*4]
loope 0x409d70
sbb al, 1
add bl, ch
add esi, dword [0x51593437]
or ecx, 0x4e6b
add ecx, 0x1182b
jmp 0x409d34
pop ecx
lea eax, [ebp - 0x17c8]
mov dword [ebp - 0xcd0], eax
mov ecx, dword [ebp - 0x51c]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xccc], edx
xor eax, eax
mov word [ebp - 0x220], ax
xor ecx, ecx
mov word [ebp - 0x3c], cx
push ecx
push ecx
add esp, 4
sub ecx, 0x14ad2
xor ecx, 0xd0fa
sub ecx, 0x87a0
pop ecx
push esi
or esi, 0x1717
sub esi, 0xd3e1
or esi, 0x5201
or esi, 0x14c57
pop esi
mov edx, dword [ebp - 0xccc]
mov ax, word [edx]
mov word [ebp - 0x1046], ax
mov ecx, dword [ebp - 0xccc]
add ecx, 2
mov dword [ebp - 0xccc], ecx
mov dx, word [ebp - 0x1046]
mov word [ebp - 0x220], dx
mov eax, dword [ebp - 0xcd0]
mov cx, word [eax]
mov word [ebp - 0x1048], cx
mov edx, dword [ebp - 0xcd0]
add edx, 2
mov dword [ebp - 0xcd0], edx
mov ax, word [ebp - 0x1048]
mov word [ebp - 0x3c], ax
push edx
push eax
add esp, 4
and edx, 0x12422
add edx, 0x143aa
pop edx
push edi
and edi, 0x28b
sub edi, 0xa432
sub edi, 0x16a86
pop edi
push eax
push eax
add esp, 4
or eax, 0x10097
pop eax
movzx ecx, word [ebp - 0x3c]
test ecx, ecx
jne 0x409e37
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
sub edx, eax
mov dword [ebp - 0x1670], edx
jmp 0x409e91
movzx ecx, word [ebp - 0x220]
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je 0x409d5f
movzx eax, word [ebp - 0x220]
xor eax, 0x20
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
je 0x409d5f
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
jge 0x409e7b
mov dword [ebp - 0x162c], 0xffffffff
jmp 0x409e85
mov dword [ebp - 0x162c], 1
mov ecx, dword [ebp - 0x162c]
mov dword [ebp - 0x1670], ecx
cmp dword [ebp - 0x1670], 0
jne 0x409eda
push eax
add eax, 0x10c79
pop eax
push edi
push esi
add esp, 4
or edi, 0x161d0
or edi, 0x5ee8
pop edi
push eax
push edx
add esp, 4
and eax, 0xadf4
sub eax, 0x13ee1
xor eax, 0xfef6
pop eax
mov edx, dword [ebp - 0x51c]
mov dword [ebp - 0x778], edx
jmp 0x409f42
push ebx
xor ebx, 0x16d2e
pop ebx
push ecx
add ecx, 0x538
add ecx, 0x6eb2
and ecx, 0x126e2
or ecx, 0x12bd6
pop ecx
push esi
xor esi, 0x1a4f
pop esi
push ebx
xor ebx, 0x4720
pop ebx
mov eax, dword [ebp - 0x51c]
mov ecx, dword [eax]
mov dword [ebp - 0x51c], ecx
mov edx, dword [ebp - 0x51c]
cmp edx, dword [ebp - 0xcd4]
je 0x409f38
mov eax, dword [ebp - 0x51c]
cmp dword [eax + 0x30], 0
jne 0x409d03
mov dword [ebp - 0x778], 0
push ecx
push esi
add esp, 4
call 0x409f53
add byte [ebx + 0x4c], cl
dec edx
cmp dword [edx + 0x35], eax
add esp, 4
xor ecx, 0x32ff
or ecx, 0xf140
or ecx, 0x17f1b
pop ecx
push ebx
jmp 0x409f73
pop ebx
cmp dword [ebp - 0x778], 0
jne 0x409fbe
push esi
and esi, 0x832e
or esi, 0xcde8
and esi, 0x1345c
pop esi
push edx
push ebx
add esp, 4
add edx, 0x4d7d
add edx, 0xde04
xor edx, 0x1976
or edx, 0x5a9
pop edx
mov dword [ebp - 0xac0], 0
jmp 0x40aae6
push eax
push esi
add esp, 4
or eax, 0x1e05
pop eax
push edx
sub edx, 0x75f1
call 0x409fe0
add byte [esi], dh
inc ebx
xor eax, 0x49493748
xor eax, 0x4c48349
pop edx
push ebx
push ebx
add esp, 4
add ebx, 0x1eb4
pop ebx
mov ecx, dword [ebp - 0x778]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x3a4], edx
mov dword [ebp - 0x788], 0
mov eax, dword [ebp - 0x3a4]
mov dword [ebp - 0x1674], eax
cmp dword [ebp - 0x1674], 0
jne 0x40a02f
mov ecx, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], ecx
jmp 0x40a320
mov edx, dword [ebp - 0x1674]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1678], eax
jne 0x40a057
mov ecx, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], ecx
jmp 0x40a320
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1678]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1680], edx
cmp dword [ebp - 0x1680], 0
jne 0x40a089
mov eax, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], eax
jmp 0x40a320
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [ebp - 0x1680]
mov dword [ebp - 0x77c], ecx
jne 0x40a0ae
mov edx, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], edx
jmp 0x40a320
mov eax, dword [ebp - 0x77c]
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x19d8], ecx
mov edx, dword [ebp - 0x77c]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x19dc], eax
mov ecx, dword [ebp - 0x77c]
mov edx, dword [ebp - 0x3a4]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x19e0], edx
mov dword [ebp - 0x780], 0
jmp 0x40a108
mov eax, dword [ebp - 0x780]
add eax, 1
mov dword [ebp - 0x780], eax
mov ecx, dword [ebp - 0x77c]
mov edx, dword [ebp - 0x780]
cmp edx, dword [ecx + 0x18]
jae 0x40a314
mov eax, dword [ebp - 0x780]
mov ecx, dword [ebp - 0x19d8]
mov edx, dword [ebp - 0x3a4]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x784], edx
mov eax, dword [ebp - 0x780]
mov ecx, dword [ebp - 0x19dc]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x19e0]
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x19e4], ecx
mov dword [ebp - 0x19c], 0
jmp 0x40a178
mov edx, dword [ebp - 0x19c]
add edx, 1
mov dword [ebp - 0x19c], edx
mov eax, dword [ebp - 0x784]
add eax, dword [ebp - 0x19c]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40a22a
mov edx, dword [ebp - 0x19c]
movsx eax, byte [ebp + edx - 0x8a8]
test eax, eax
je 0x40a22a
push ebx
push esi
add esp, 4
or ebx, 0x7769
and ebx, 0x434e
pop ebx
push ebx
push eax
add esp, 4
jmp 0x40a1c3
or ebx, 0x144ff
and ebx, 0x15cd7
jmp 0x40a1d6
pop ebx
mov ecx, dword [ebp - 0x784]
add ecx, dword [ebp - 0x19c]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x19c]
movsx ecx, byte [ebp + eax - 0x8a8]
cmp edx, ecx
je 0x40a21c
mov edx, dword [ebp - 0x784]
add edx, dword [ebp - 0x19c]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x19c]
movsx edx, byte [ebp + ecx - 0x8a8]
cmp eax, edx
jne 0x40a223
jmp 0x40a169
jmp 0x40a22a
push edx
and edx, 0xa4e5
sub edx, 0xb670
or edx, 0x6610
pop edx
push eax
push edx
add esp, 4
and eax, 0x104e0
or eax, 0x6334
add eax, 0x83b1
xor eax, 0x16d32
pop eax
mov eax, dword [ebp - 0x784]
add eax, dword [ebp - 0x19c]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x19c]
movsx eax, byte [ebp + edx - 0x8a8]
cmp ecx, eax
jne 0x40a289
mov dword [ebp - 0xcd8], 0
jmp 0x40a2f8
push eax
jmp 0x40a290
pop eax
push edx
push eax
add esp, 4
add edx, 0x10bb9
and edx, 0x668
pop edx
push edx
push eax
add esp, 4
and edx, 0x113df
pop edx
push ecx
push ebx
add esp, 4
and ecx, 0x12893
pop ecx
mov ecx, dword [ebp - 0x784]
add ecx, dword [ebp - 0x19c]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x19c]
movsx ecx, byte [ebp + eax - 0x8a8]
or ecx, 0x20
cmp edx, ecx
jge 0x40a2ee
mov dword [ebp - 0xcd8], 0xffffffff
jmp 0x40a2f8
mov dword [ebp - 0xcd8], 1
cmp dword [ebp - 0xcd8], 0
jne 0x40a30f
mov edx, dword [ebp - 0x19e4]
mov dword [ebp - 0x3fc], edx
jmp 0x40a320
jmp 0x40a0f9
mov eax, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], eax
cmp dword [ebp - 0x3fc], 0
je 0x40a3fb
push edi
or edi, 0x14aa5
xor edi, 0x5e60
pop edi
push eax
push ecx
add esp, 4
add eax, 0x1516c
add eax, 0x4f58
add eax, 0xf1e4
pop eax
push ecx
push esi
add esp, 4
xor ecx, 0xbdd2
pop ecx
mov ecx, dword [ebp - 0x3fc]
mov dword [ebp - 0x19e8], ecx
push edx
or edx, 0x17e53
call 0x40a382
add byte [ebp + 0x42], cl
push eax
cmp dword [ebp + 0x50], ecx
cmp byte [edi + 0x35], al
dec edx
add esp, 4
jmp 0x40a38e
sub edx, 0x1ec
pop edx
push ebx
sub ebx, 0xfafa
pop ebx
mov edx, dword [ebp - 0x19e8]
mov dword [ebp - 0x19ec], edx
lea eax, [ebp - 0x1740]
push eax
call dword [ebp - 0x19ec]
test eax, eax
jne 0x40a3fb
push ebx
push eax
add esp, 4
xor ebx, 0x15b52
and ebx, 0x1b1e
pop ebx
push edx
sub edx, 0x5de7
add edx, 0x17633
pop edx
push ebx
push edx
add esp, 4
xor ebx, 0x4199
add ebx, 0x118b4
pop ebx
mov dword [ebp - 0xac0], 0
jmp 0x40aae6
push edi
or edi, 0x56f6
sub edi, 0x95d0
pop edi
push edi
or edi, 0x17ae
and edi, 0x2cb4
pop edi
push ecx
or ecx, 0xfa2d
pop ecx
push eax
sub eax, 0x1510d
and eax, 0x48e6
pop eax
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x19f0], ecx
mov edx, dword [ebp - 0x19f0]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19f4], eax
mov ecx, dword [ebp - 0x19f4]
mov dword [ebp - 0x1684], ecx
push esi
push esi
add esp, 4
or esi, 0x4a5f
xor esi, 0x2d04
or esi, 0xa72b
pop esi
push ebx
push ebx
add esp, 4
and ebx, 0x4cdb
jmp 0x40a480
xor ebx, 0x13459
pop ebx
cmp dword [ebp - 0x1684], 0
jne 0x40a49f
mov dword [ebp - 0x2f4], 0
jmp 0x40a746
mov edx, dword [ebp - 0x1684]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xce4], ecx
push ecx
push esi
add esp, 4
and ecx, 0x28ea
pop ecx
push esi
xor esi, 0x2a61
xor esi, 0x1424f
or esi, 0x10f3
and esi, 0xa896
pop esi
push eax
push edx
add esp, 4
add eax, 0xed2d
pop eax
cmp dword [ebp - 0xce4], 0
jne 0x40a4fb
mov dword [ebp - 0x2f4], 0
jmp 0x40a746
mov edx, dword [ebp - 0xce4]
mov dword [ebp - 0x520], edx
push eax
jmp 0x40a50e
pop eax
push ecx
push edi
add esp, 4
and ecx, 0x11bfe
sub ecx, 0xfd31
and ecx, 0x1142c
and ecx, 0x62c1
pop ecx
push ecx
push edx
add esp, 4
or ecx, 0x179d2
pop ecx
lea eax, [ebp - 0x1740]
mov dword [ebp - 0xce0], eax
mov ecx, dword [ebp - 0x520]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xcdc], edx
xor eax, eax
mov word [ebp - 0x224], ax
xor ecx, ecx
mov word [ebp - 0x40], cx
push edx
push esi
add esp, 4
add edx, 0x10d3c
xor edx, 0xfd71
or edx, 0xd6ea
pop edx
push ebx
and ebx, 0xd664
or ebx, 0x145c7
pop ebx
push ebx
push ebx
add esp, 4
and ebx, 0x178e6
pop ebx
mov edx, dword [ebp - 0xcdc]
mov ax, word [edx]
mov word [ebp - 0x104a], ax
mov ecx, dword [ebp - 0xcdc]
add ecx, 2
mov dword [ebp - 0xcdc], ecx
mov dx, word [ebp - 0x104a]
mov word [ebp - 0x224], dx
mov eax, dword [ebp - 0xce0]
mov cx, word [eax]
mov word [ebp - 0x104c], cx
mov edx, dword [ebp - 0xce0]
add edx, 2
mov dword [ebp - 0xce0], edx
mov ax, word [ebp - 0x104c]
mov word [ebp - 0x40], ax
push edx
push edi
add esp, 4
and edx, 0x118f2
pop edx
push ebx
or ebx, 0x831a
or ebx, 0xa23a
or ebx, 0xdf1a
pop ebx
push ecx
push eax
add esp, 4
or ecx, 0xc3fa
sub ecx, 0xf16b
pop ecx
movzx ecx, word [ebp - 0x40]
test ecx, ecx
jne 0x40a63b
movzx edx, word [ebp - 0x224]
movzx eax, word [ebp - 0x40]
sub edx, eax
mov dword [ebp - 0x168c], edx
jmp 0x40a695
movzx ecx, word [ebp - 0x224]
movzx edx, word [ebp - 0x40]
cmp ecx, edx
je 0x40a563
movzx eax, word [ebp - 0x224]
xor eax, 0x20
movzx ecx, word [ebp - 0x40]
cmp eax, ecx
je 0x40a563
movzx edx, word [ebp - 0x224]
movzx eax, word [ebp - 0x40]
cmp edx, eax
jge 0x40a67f
mov dword [ebp - 0x1688], 0xffffffff
jmp 0x40a689
mov dword [ebp - 0x1688], 1
mov ecx, dword [ebp - 0x1688]
mov dword [ebp - 0x168c], ecx
cmp dword [ebp - 0x168c], 0
jne 0x40a6de
push edx
call 0x40a6ae
add byte [ecx + 0x4a], cl
inc edx
inc ebp
xor eax, 0x833b3b4d
les eax, [eax + ebp*8]
or dword [eax], eax
add byte [eax], al
add byte [edx + 0x3e], al
inc ebx
xor eax, 0x8341474b
les eax, [ecx + eax*4]
ljmp 0x575a
mov dword [ebp - 0x2f4], edx
jmp 0x40a746
push ebx
push esi
add esp, 4
and ebx, 0x116d1
call 0x40a6f8
add byte [eax + 0x4a], dl
dec eax
inc esi
dec ebp
xor edi, dword [0xc483373d]
add al, 0x81
jmp 0x40a6d6
push eax
push ebx
add esp, 4
add eax, 0x10fc1
call 0x40a761
add byte [ecx + 0x3c], cl
inc edi
dec edx
dec eax
inc esp
xor eax, dword [ecx + 0x49]
add esp, 4
call 0x40a774
add byte [edx + 0x3e], al
dec esi
cmp al, 0x3d
cmp eax, 0x4c455033
add esp, 4
pop eax
mov ecx, dword [ebp - 0x2f4]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x36c], edx
push eax
push eax
add esp, 4
call 0x40a79a
add byte [esi], bh
xor al, byte ss:[edi + 0x33]
dec esp
push eax
add esp, 4
sub eax, 0x4989
pop eax
push edx
push eax
add esp, 4
call 0x40a7b5
add byte [eax], bh
inc edi
dec edi
dec esi
dec eax
dec ecx
add esp, 4
pop edx
mov dword [ebp - 0x798], 0
mov eax, dword [ebp - 0x36c]
mov dword [ebp - 0x1690], eax
cmp dword [ebp - 0x1690], 0
jne 0x40a7e9
mov ecx, dword [ebp - 0x798]
mov dword [ebp - 0x524], ecx
jmp 0x40aada
mov edx, dword [ebp - 0x1690]
mov eax, dword [ebp - 0x36c]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1694], eax
jne 0x40a811
mov ecx, dword [ebp - 0x798]
mov dword [ebp - 0x524], ecx
jmp 0x40aada
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1694]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1698], edx
cmp dword [ebp - 0x1698], 0
jne 0x40a843
mov eax, dword [ebp - 0x798]
mov dword [ebp - 0x524], eax
jmp 0x40aada
mov ecx, dword [ebp - 0x36c]
add ecx, dword [ebp - 0x1698]
mov dword [ebp - 0x78c], ecx
jne 0x40a868
mov edx, dword [ebp - 0x798]
mov dword [ebp - 0x524], edx
jmp 0x40aada
mov eax, dword [ebp - 0x78c]
mov ecx, dword [ebp - 0x36c]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x19f8], ecx
mov edx, dword [ebp - 0x78c]
mov eax, dword [ebp - 0x36c]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x19fc], eax
mov ecx, dword [ebp - 0x78c]
mov edx, dword [ebp - 0x36c]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x1a00], edx
mov dword [ebp - 0x790], 0
jmp 0x40a8c2
mov eax, dword [ebp - 0x790]
add eax, 1
mov dword [ebp - 0x790], eax
mov ecx, dword [ebp - 0x78c]
mov edx, dword [ebp - 0x790]
cmp edx, dword [ecx + 0x18]
jae 0x40aace
mov eax, dword [ebp - 0x790]
mov ecx, dword [ebp - 0x19f8]
mov edx, dword [ebp - 0x36c]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x794], edx
mov eax, dword [ebp - 0x790]
mov ecx, dword [ebp - 0x19fc]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x1a00]
mov ecx, dword [ebp - 0x36c]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x1a04], ecx
mov dword [ebp - 0x1a0], 0
jmp 0x40a932
mov eax, dword [ebp - 0x794]
add eax, dword [ebp - 0x1a0]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40a9e4
mov edx, dword [ebp - 0x1a0]
movsx eax, byte [ebp + edx - 0x9d8]
test eax, eax
je 0x40a9e4
push ecx
jmp 0x40a968
call 0x40a975
add byte [edi + 0x47], al
inc ecx
cmp al, 0x3a
dec edi
dec ecx
add esp, 4
call 0x40a987
add byte [ebx + 0x3f], cl
xor esi, dword ss:[edx]
dec eax
inc ecx
xor ecx, dword [eax - 0x7d]
les eax, [ecx + eax*4]
loope 0x40a9bb
rol byte [eax], 1
add byte [ecx - 0x75], bl
lea ebp, [eax + edi*8 - 1]
inc dword [ebx]
lea esp, [eax - 2]
invalid
invalid
push eax
xor eax, 0x5614
and eax, 0xac69
xor eax, 0x14cfe
pop eax
push esi
push edi
add esp, 4
jmp 0x40aa06
xor esi, 0x73b3
jmp 0x40aa15
pop esi
mov eax, dword [ebp - 0x794]
add eax, dword [ebp - 0x1a0]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x1a0]
movsx eax, byte [ebp + edx - 0x9d8]
cmp ecx, eax
jne 0x40aa43
mov dword [ebp - 0xce8], 0
jmp 0x40aab2
push eax
jmp 0x40aa4a
pop eax
push eax
jmp 0x40aa51
xor eax, 0xcc19
and eax, 0xb7ec
pop eax
push edi
and edi, 0x15948
jmp 0x40aa6e
xor edi, 0x155f6
pop edi
mov ecx, dword [ebp - 0x794]
add ecx, dword [ebp - 0x1a0]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x1a0]
movsx ecx, byte [ebp + eax - 0x9d8]
or ecx, 0x20
cmp edx, ecx
jge 0x40aaa8
mov dword [ebp - 0xce8], 0xffffffff
jmp 0x40aab2
mov dword [ebp - 0xce8], 1
cmp dword [ebp - 0xce8], 0
jne 0x40aac9
mov edx, dword [ebp - 0x1a04]
mov dword [ebp - 0x524], edx
jmp 0x40aada
jmp 0x40a8b3
mov eax, dword [ebp - 0x798]
mov dword [ebp - 0x524], eax
mov ecx, dword [ebp - 0x524]
mov dword [ebp - 0xac0], ecx
push esi
push eax
add esp, 4
add esi, 0x8960
xor esi, 0x1199c
pop esi
push esi
call 0x40ab08
add byte [ebx + 0x36], cl
cmp edi, dword [ebx]
xor al, 0x49
aaa
inc esp
dec ebx
add esp, 4
pop esi
push edi
push esi
add esp, 4
or edi, 0x9169
pop edi
mov edx, dword [ebp - 0xac0]
mov dword [ebp - 0x1a08], edx
lea eax, [ebp - 0xcec]
push eax
push 0x40
mov ecx, dword [ebp - 0x169c]
push ecx
mov edx, dword [ebp - 0x3e4]
push edx
call dword [ebp - 0x1a08]
test eax, eax
jne 0x40ab8b
push esi
or esi, 0x1562c
and esi, 0x6829
add esi, 0x15b6f
and esi, 0x417d
pop esi
push edx
push esi
add esp, 4
xor edx, 0xaea2
sub edx, 0x7e17
or edx, 0xefcb
pop edx
mov eax, dword [ebp - 0x7a0]
mov dword [ebp - 0x1a0c], eax
push 0
call dword [ebp - 0x1a0c]
mov ecx, dword [ebp - 0x1a10]
mov dword [ebp - 0x79c], ecx
jmp 0x40aba8
mov edx, dword [ebp - 0x79c]
add edx, 1
mov dword [ebp - 0x79c], edx
mov eax, dword [ebp - 0x79c]
cmp eax, dword [ebp - 0xac4]
jae 0x40ac04
push edx
call 0x40abc4
add byte [ebx + eax*2 + 0x33], al
cmp al, 0x42
dec edx
dec ecx
add esp, 4
xor edx, 0x117de
or edx, 0x16e9c
pop edx
push edi
xor edi, 0xcf79
sub edi, 0xb560
sub edi, 0x2936
pop edi
movzx ecx, byte [ebp - 0x3ed]
mov edx, dword [ebp - 0x79c]
movsx eax, byte [edx]
sub eax, ecx
mov ecx, dword [ebp - 0x79c]
mov byte [ecx], al
jmp 0x40ab99
mov edx, dword [ebp - 0xac0]
mov dword [ebp - 0x1a14], edx
lea eax, [ebp - 0xcec]
push eax
mov ecx, dword [ebp - 0xcec]
push ecx
mov edx, dword [ebp - 0x169c]
push edx
mov eax, dword [ebp - 0x3e4]
push eax
call dword [ebp - 0x1a14]
test eax, eax
jne 0x40ac7c
push eax
push esi
add esp, 4
call 0x40ac47
add byte [edx], bh
dec esi
cmp esi, dword [0xc483484d]
add al, 0x58
push ebx
push esi
add esp, 4
add ebx, 0xdd7f
jmp 0x40ac5f
pop ebx
push esi
add esi, 0x1975
pop esi
mov ecx, dword [ebp - 0x7a0]
mov dword [ebp - 0x1a18], ecx
push 0
call dword [ebp - 0x1a18]
push eax
push edx
add esp, 4
sub eax, 0xb395
jmp 0x40ac8c
jmp 0x40ac91
pop eax
push eax
xor eax, 0x14b7c
or eax, 0x2a47
and eax, 0x152d9
pop eax
push edi
xor edi, 0x107f4
pop edi
push edx
mov ecx, 0x10101010
pop edx
push ecx
mov ecx, 0xffff01ff
pop ecx
push edi
push edi
test ch, al
add eax, 0x680acf82
add dword [ecx], eax
and bh, 0x8a
aaa
add dword [ecx], eax
and bh, 0x55
or eax, dword [edx]
add dword [edx + 0x243e9c7], eax
add dword [edi + 0x58], ebx
cmp al, 0xf
pop eax
add dword [ecx], eax
in al, dx
add eax, 0x4b384c35
adc al, 0x50
outsb dx, byte [esi]
add al, byte [ecx]
pushal
mov dword [esi + 0xefb1], 0xb286c748
out dx, eax
add byte [eax], al
mov word [esi + 0xefb3], 0xc775
xchg byte [edi + ebp*8 - 0x38b20000], dh
xchg byte [ebp + 0x700000ef], dh
mov dword [esi + 0xefb6], 0xb786c765
out dx, eax
add byte [eax], al
jbe 0x40ace7
xchg byte [eax + 0x6d0000ef], bh
mov dword [esi + 0xefb9], 0xba86c766
out dx, eax
add byte [eax], al
dec ecx
mov dword [esi + 0xefbb], 0xbc86c762
out dx, eax
add byte [eax], al
outsd dx, dword [esi]
mov dword [esi + 0xefbd], 0xbe86c765
out dx, eax
add byte [eax], al
insd dword es:[edi], dx
mov dword [esi + 0xefbf], 0xc086c766
out dx, eax
add byte [eax], al
pop eax
mov dword [esi + 0xefc1], 0xeb825301
mov byte [0x82010166], al
jecxz 0x40ad93
lea eax, [ecx]
add dword [edx + 0x124e3eb], eax
add dword [ebx + 0x53], ebx
pop eax
test ch, al
add eax, 0x17d9c382
add dword [ecx], eax
add bl, 0xea
out dx, eax
add dword [ecx], eax
and bl, 0xd6
mov dword [0xf3820101], eax
mov edx, 0x5b0101bb
xor bl, 0xba
mov ebx, 0xc75b0101
xchg ch, bl
out dx, eax
add byte [eax], al
inc edi
mov dword [esi + 0xefdd], 0xde86c747
out dx, eax
add byte [eax], al
push 0xffffffffffffffc7
xchg bh, bl
mov dword [esi + 0xefde], 0xdf86c76a
mov dword [esi + 0xefdf], 0xe086c76f
out dx, eax
add byte [eax], al
mov dword gs:[esi + 0xefe1], 0xe286c753
out dx, eax
add byte [eax], al
mov word [esi + 0xefe3], 0xc774
out dx, eax
add byte [eax], al
outsd dx, dword [esi]
mov dword [esi + 0xefe0], 0xe186c765
out dx, eax
add byte [eax], al
push ebx
mov dword [esi + 0xefe2], 0xe386c766
out dx, eax
add byte [eax], al
je 0x40ad90
xchg ah, ah
out dx, eax
add byte [eax], al
jo 0x40ad97
xchg ch, ah
out dx, eax
add byte [eax], al
jbe 0x40ad9e
xchg dh, ah
out dx, eax
add byte [eax], al
jae 0x40ada5
xchg bh, ah
out dx, eax
add byte [eax], al
mov dword fs:[esi + 0xefe8], 0xe986c766
out dx, eax
add byte [eax], al
pop eax
mov dword [esi + 0xefea], 0xeb825301
cmp esp, dword [ebp + 1]
add dword [ebx + 0x51], ebx
push esp
test ch, al
add eax, 0x513f05ec
dec esi
inc edi
and cl, 0x4b
push edi
add dword [ecx], eax
pop ecx
push edx
push edx
test ch, al
add eax, 0x187dea82
add al, byte [ecx]
add dl, 0x9a
cmp al, 1
add dword [edx + 0x11dceea], eax
add dword [edx - 0x39], ebx
xchg ch, bh
out dx, eax
add byte [eax], al
dec ebp
mov dword [esi + 0xeffe], 0xff86c770
out dx, eax
add byte [eax], al
invalid