Function at 0x501220
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov ebp, dword [esp + 0x58]
mov eax, dword [0x606180]
xor eax, esp
mov dword [esp + 0x40], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
mov eax, dword [eax]
movzx eax, byte [eax]
mov byte [esp + 0x3f], al
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5c]
mov ecx, eax
xor ecx, 0xfffffeff
and ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, 0x380251ae
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], eax
jmp 0x50127a
mov ecx, 0xed8f42c0
movzx eax, byte [esp + 0x21]
mov dword [esp + 0x28], eax
jmp 0x5012d0
cmp word [ebp + 0x24], 0
setne byte [esp + 0x22]
mov eax, dword [0x60c370]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
mov ecx, 0x6d4bfa5d
mov esi, 0x89875ba3
cmove ecx, esi
cmp dword [0x60c374], 0xa
mov edx, 0x6d4bfa5d
cmovge ecx, edx
setl dl
xor dl, al
cmovne ecx, esi
nop word cs:[eax + eax]
cmp ecx, 0xfaa84760
jle 0x501350
cmp ecx, 0x33e1a42e
jg 0x5013b0
cmp ecx, 0xa958604
jg 0x501499
cmp ecx, 0x4137cd8
jg 0x5015eb
cmp ecx, 0x1c1400
jg 0x501876
cmp ecx, 0xfaa84761
je 0x501cc9
cmp ecx, 0xfc1380c5
jne 0x5012d0
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x70]
movsx eax, word [ebp + 0x24]
movsx edx, byte [esp + 0x3f]
push eax
push edx
call fcn.0048cd80
test al, al
mov ecx, 0xbf2290f9
mov eax, 0x3a9f9ff2
cmovne ecx, eax
jmp 0x5012d0
cmp ecx, 0xb56d99e7
jle 0x501410
cmp ecx, 0xd85324ba
jg 0x5014fc
cmp ecx, 0xc704acdb
jg 0x501628
cmp ecx, 0xbf2290f8
jg 0x5018c2
cmp ecx, 0xb56d99e8
je 0x501cf2
cmp ecx, 0xb6e86458
jne 0x5012d0
mov ecx, 0x99d83239
jmp 0x5012d0
cmp ecx, 0x52505943
jg 0x50155e
cmp ecx, 0x3d3cd6f8
jg 0x50169d
cmp ecx, 0x3a9f9ff1
jg 0x5018f1
cmp ecx, 0x33e1a42f
je 0x501d34
cmp ecx, 0x380251ae
jne 0x5012d0
cmp dword [esp + 0x38], 0
mov ecx, 0xb56d99e8
mov eax, 0x65e884e
cmove ecx, eax
jmp 0x5012d0
cmp ecx, 0x96054aba
jg 0x5015a4
cmp ecx, 0x89c18fd1
jg 0x50170c
cmp ecx, 0x880d2b35
jg 0x501913
cmp ecx, 0x869b69de
je 0x501d3e
cmp ecx, 0x87d53642
jne 0x5012d0
mov edx, dword [0x60c370]
mov eax, dword [0x60c374]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x2af65cf1
mov esi, 0x7fadddd1
cmovne edx, esi
cmp ecx, 0xffffffff
mov ecx, edx
cmove ecx, esi
cmp eax, 0xa
cmovge ecx, edx
cmp dword [ebp + 0x20], 0
setne byte [esp + 0x1c]
jmp 0x5012d0
cmp ecx, 0x2a475860
jg 0x501763
cmp ecx, 0x164710d1
jg 0x501942
cmp ecx, 0xa958605
je 0x501d48
cmp ecx, 0x1521c191
jne 0x5012d0
mov edx, dword [0x60c370]
mov eax, dword [0x60c374]
lea ecx, [edx - 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x9ba97188
mov esi, 0xcfb175f9
jmp 0x5020c5
cmp ecx, 0xebd294ab
jg 0x501791
cmp ecx, 0xe2818542
jg 0x5019c2
cmp ecx, 0xd85324bb
je 0x501d62
cmp ecx, 0xe194eb27
jne 0x5012d0
mov ecx, dword [0x60c370]
mov eax, dword [0x60c374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete bl
cmp eax, 0xa
setl bh
xor bh, bl
mov esi, 0x3b937bab
mov edi, 0x7f5582ee
jmp 0x501d1f
cmp ecx, 0x79edd32a
jg 0x5017c9
cmp ecx, 0x6d4bfa5c
jg 0x5019e4
cmp ecx, 0x52505944
je 0x501d6c
cmp ecx, 0x5e293398
jne 0x5012d0
cmp dword [ebp + 0x1c], 0
mov ecx, 0x42f6c142
mov eax, 0x31f8cb0d
cmove ecx, eax
jmp 0x5012d0
cmp ecx, 0x9fdae2d5
jle 0x501820
cmp ecx, 0xb0e6790d
jg 0x501a14
cmp ecx, 0x9fdae2d6
je 0x501280
cmp ecx, 0xa588ad9e
jne 0x5012d0
cmp byte [esp + 0x23], 0
mov ecx, 0xa958605
mov eax, 0x94329b0b
cmovne ecx, eax
jmp 0x5012d0
cmp ecx, 0x74d33eb
jg 0x501a3e
cmp ecx, 0x4137cd9
je 0x501d7f
cmp ecx, 0x65e884e
jne 0x5012d0
mov eax, dword [esp + 4]
mov eax, dword [eax]
inc eax
mov dword [esp + 0x2c], eax
cmp dword [ebp + 0x14], 0
mov ecx, 0xe1d0d2
jmp 0x5018b5
cmp ecx, 0xd0fc2a70
jg 0x501ab1
cmp ecx, 0xc704acdc
je 0x501d9d
cmp ecx, 0xcfb175f9
jne 0x5012d0
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5c]
not eax
or eax, 0xfffff7ff
cmp eax, 0xffffffff
setne byte [esp + 0x1d]
mov eax, dword [0x60c370]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
mov ecx, 0x9ba97188
mov esi, 0x74d33ec
cmove ecx, esi
cmp dword [0x60c374], 0xa
mov edx, 0x9ba97188
jmp 0x5012b8
cmp ecx, 0x40c27a96
jg 0x501ad3
cmp ecx, 0x3d3cd6f9
je 0x501da7
cmp ecx, 0x3fef3e8e
jne 0x5012d0
mov ecx, dword [0x60c370]
mov eax, dword [0x60c374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete bl
cmp eax, 0xa
setl bh
xor bh, bl
mov esi, 0xebd294ac
mov edi, 0x9050adc
cmovne esi, edi
test ecx, edx
mov ecx, esi
cmove ecx, edi
cmp eax, 0xa
movzx eax, byte [esp + 0xe]
mov byte [esp + 0xf], al
cmovge ecx, esi
jmp 0x5012d0
cmp ecx, 0x94b812af
jg 0x501bbb
cmp ecx, 0x89c18fd2
je 0x501db1
cmp ecx, 0x94329b0b
jne 0x5012d0
mov eax, dword [0x60c370]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
mov ecx, 0xb3c4519b
mov esi, 0xd0fc2a71
cmove ecx, esi
cmp dword [0x60c374], 0xa
mov edx, 0xb3c4519b
jmp 0x5012b8
cmp ecx, 0x2d3e532f
jg 0x501c05
cmp ecx, 0x2a475861
je 0x501dbb
cmp ecx, 0x2af65cf1
jne 0x5012d0
mov ecx, 0x87d53642
jmp 0x5012d0
cmp ecx, 0xf36d6be1
jg 0x501c42
cmp ecx, 0xebd294ac
je 0x501dc5
cmp ecx, 0xed8f42c0
jne 0x5012d0
mov eax, dword [esp + 0x28]
and al, 1
mov dword [esp + 0x14], eax
mov ecx, 0xe194eb27
jmp 0x5012d0
cmp ecx, 0x7fadddd0
jg 0x501c8d
cmp ecx, 0x79edd32b
je 0x501de1
cmp ecx, 0x7f5582ee
jne 0x5012d0
mov eax, dword [0x60c370]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
mov ecx, 0x3b937bab
mov esi, 0x89c18fd2
cmove ecx, esi
cmp dword [0x60c374], 0xa
mov edx, 0x3b937bab
jmp 0x5012b8
cmp ecx, 0x99d83238
jg 0x501caf
cmp ecx, 0x96054abb
je 0x501ee0
cmp ecx, 0x972c22b2
jne 0x5012d0
mov ecx, dword [0x60c370]
mov eax, dword [0x60c374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete bl
cmp eax, 0xa
setl bh
xor bh, bl
mov esi, 0xe2818543
mov edi, 0x40c27a97
jmp 0x501d1f
cmp ecx, 0x1c1401
je 0x501eea
cmp ecx, 0xe1d0d2
jne 0x5012d0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
push dword [ebp + 0x14]
push dword [eax + 0x50]
push dword [ecx]
call fcn.005056a0
add esp, 0xc
mov ecx, dword [esp + 4]
mov dword [esp + 0x34], eax
cmp eax, dword [ecx]
mov ecx, 0x708642ab
mov eax, 0x95c2f85a
cmove ecx, eax
jmp 0x5012d0
cmp ecx, 0xbf2290f9
je 0x501efc
cmp ecx, 0xc52f6962
jne 0x5012d0
cmp byte [esp + 0x20], 0
mov ecx, 0x3d3cd6f9
mov eax, 0x869b69de
cmovne ecx, eax
jmp 0x5012d0
cmp ecx, 0x3a9f9ff2
je 0x501f12
cmp ecx, 0x3b937bab
jne 0x5012d0
mov ecx, 0x7f5582ee
jmp 0x5012d0
cmp ecx, 0x880d2b36
je 0x501f22
cmp ecx, 0x89875ba3
jne 0x5012d0
cmp byte [esp + 0x22], 0
mov ecx, 0xbf2290f9
mov eax, 0xfc1380c5
cmovne ecx, eax
jmp 0x5012d0
cmp ecx, 0x164710d2
je 0x501f4e
cmp ecx, 0x21b65e64
jne 0x5012d0
mov edx, dword [0x60c370]
mov eax, dword [0x60c374]
lea ecx, [edx - 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x2a475861
mov esi, 0xa588ad9e
cmovne edx, esi
cmp ecx, 0xffffffff
mov ecx, edx
cmove ecx, esi
cmp eax, 0xa
mov eax, dword [ebp + 8]
cmovge ecx, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne al
sete dl
mov ebx, dword [esp + 0x14]
test bl, 1
sete ah
and ah, dl
and al, bl
or al, ah
mov byte [esp + 0x23], al
jmp 0x5012d0
cmp ecx, 0xe2818543
je 0x501f9b
cmp ecx, 0xe48237f3
jne 0x5012d0
mov ecx, 0x164710d2
jmp 0x5012d0
cmp ecx, 0x6d4bfa5d
je 0x50208d
cmp ecx, 0x708642ab
jne 0x5012d0
mov ecx, 0xf95f53dd
mov al, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
jmp 0x5012d0
cmp ecx, 0xb0e6790e
je 0x502097
cmp ecx, 0xb3c4519b
jne 0x5012d0
mov ecx, 0xd0fc2a71
mov dword [esp + 0x24], 0
jmp 0x5012d0
cmp ecx, 0x74d33ec
je 0x5020db
cmp ecx, 0x9050adc
jne 0x5012d0
movzx eax, byte [esp + 0xf]
push dword [esp + 0x30]
push eax
call fcn.004b3510
add esp, 8
mov esi, dword [0x60c370]
mov edx, dword [0x60c374]
lea ecx, [esi + 1]
imul ecx, esi
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete ah
cmp edx, 0xa
setl bl
xor bl, ah
mov esi, 0xebd294ac
mov edi, 0xc52f6962
cmovne esi, edi
cmp ecx, 0xffffffff
mov ecx, esi
cmove ecx, edi
cmp edx, 0xa
mov byte [esp + 0x20], al
cmovge ecx, esi
jmp 0x5012d0
cmp ecx, 0xd0fc2a71
je 0x5020f2
cmp ecx, 0xd31703bc
jne 0x5012d0
mov ecx, 0x7fd36df0
jmp 0x501f17
cmp ecx, 0x40c27a97
je 0x50213e
cmp ecx, 0x42f6c142
jne 0x5012d0
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx + 8]
mov ecx, dword [0x60b1f0]
lea esi, [ecx + 1]
imul esi, ecx
mov ecx, esi
xor ecx, 0xfffffffe
test ecx, esi
mov esi, dword [0x60b1f4]
sete byte [esp + 2]
sete bl
mov ecx, 0x870ecbd1
mov edi, ebp
mov ebp, 0x93bd2ca8
cmove ecx, ebp
cmp esi, 0xa
setl byte [esp + 3]
setl bh
mov edx, dword [edx + 4]
mov dword [esp + 0x10], edx
mov edx, 0x870ecbd1
cmovge ecx, edx
xor bh, bl
cmovne ecx, ebp
mov ebx, edi
mov esi, 0x4691b38f
nop word [eax + eax]
cmp esi, 0xb0cc5a3a
jg 0x501b70
cmp esi, 0x870ecbd1
je 0x501bb0
cmp esi, 0x93bd2ca8
jne 0x501b50
jmp 0x502234
cmp esi, 0xb0cc5a3b
je 0x501bb7
cmp esi, 0x4691b38f
jne 0x501b50
movzx ebx, byte [esp + 2]
movzx edx, byte [esp + 3]
mov bh, dl
xor bh, bl
test dl, dl
mov esi, 0x870ecbd1
mov ebp, 0xb0cc5a3b
cmovne esi, ebp
test bl, bl
mov edx, 0x870ecbd1
cmove esi, edx
test bh, bh
cmovne esi, ebp
mov ebx, edi
jmp 0x501b50
mov esi, 0xb0cc5a3b
jmp 0x501b50
mov esi, ecx
jmp 0x501b50
cmp ecx, 0x94b812b0
je 0x502313
cmp ecx, 0x95c2f85a
jne 0x5012d0
mov ecx, dword [0x60c370]
mov eax, dword [0x60c374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete bl
cmp eax, 0xa
setl bh
xor bh, bl
mov esi, 0x2af65cf1
mov edi, 0x87d53642
jmp 0x501d1f
cmp ecx, 0x2d3e5330
je 0x50231d
cmp ecx, 0x31f8cb0d
jne 0x5012d0
mov eax, dword [0x60c370]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
mov ecx, 0x6d4bfa5d
mov esi, 0x9fdae2d6
jmp 0x5012a9
cmp ecx, 0xf36d6be2
je 0x501270
cmp ecx, 0xf95f53dd
jne 0x5012d0
mov eax, dword [0x60c370]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
mov ecx, 0x2a475861
mov esi, 0x21b65e64
cmove ecx, esi
cmp dword [0x60c374], 0xa
mov edx, 0x2a475861
jmp 0x5012b8
cmp ecx, 0x7fadddd1
je 0x502436
cmp ecx, 0x7fd36df0
jne 0x5012d0
mov ecx, 0xe194eb27
jmp 0x5012d0
cmp ecx, 0x9ba97188
jne 0x502555
mov eax, dword [esp + 4]
mov ecx, 0xcfb175f9
jmp 0x5012d0
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x70]
movsx eax, byte [esp + 0x3f]
push eax
call fcn.004916e0
mov byte [esp + 0x1e], al
mov ecx, 0x3fef3e8e
movzx eax, byte [esp + 0x1e]
mov byte [esp + 0xe], al
jmp 0x5012d0
mov ecx, dword [0x60c370]
mov eax, dword [0x60c374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete bl
cmp eax, 0xa
setl bh
xor bh, bl
mov esi, 0x79edd32b
mov edi, 0x2d3e5330
cmovne esi, edi
test ecx, edx
mov ecx, esi
cmove ecx, edi
cmp eax, 0xa
cmovge ecx, esi
jmp 0x5012d0
mov ecx, 0x65e884e
jmp 0x5012d0
mov ecx, 0x96054abb
jmp 0x501f17
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov ecx, 0x99d83239
mov al, 1
mov dword [esp + 0x24], eax
jmp 0x5012d0
mov ecx, 0x94b812b0
jmp 0x501f17
mov ecx, 0x3fef3e8e
movzx eax, byte [esp + 0x1f]
mov byte [esp + 0xe], al
jmp 0x5012d0
cmp dword [ebp + 0x18], 0
mov ecx, 0x972c22b2
mov eax, 0xed8f42c0
cmove ecx, eax
mov dword [esp + 0x28], 0
jmp 0x5012d0
mov ecx, 0x7fd36df0
jmp 0x5012d0
mov ecx, 0x4137cd9
jmp 0x5012d0
mov ecx, 0x96054abb
jmp 0x5012d0
mov ecx, 0x21b65e64
jmp 0x5012d0
movzx eax, byte [esp + 0xf]
push dword [esp + 0x30]
push eax
call fcn.004b3510
add esp, 8
mov ecx, 0x9050adc
jmp 0x5012d0
mov eax, dword [esp + 4]
mov ebp, dword [eax + 0x70]
mov bh, byte [esp + 0x3f]
mov eax, dword [0x60af30]
mov ecx, dword [0x60af34]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esp + 2]
cmp ecx, 0xa
setl byte [esp + 3]
mov eax, 0xbe7f1cef
nop word cs:[eax + eax]
cmp eax, 0x1854581e
jg 0x501e70
cmp eax, 0xad8cb3c5
je 0x50244d
cmp eax, 0xbe7f1cef
jne 0x501e20
movzx ecx, byte [esp + 2]
movzx eax, byte [esp + 3]
mov edx, ecx
xor dl, al
mov edx, 0x1854581f
mov esi, 0x45efd0e4
cmovne edx, esi
test al, al
mov eax, edx
cmovne eax, esi
test cl, cl
cmove eax, edx
jmp 0x501e20
cmp eax, 0x1854581f
je 0x501eca
cmp eax, 0x45efd0e4
jne 0x501e20
mov ecx, dword [ebp + 4]
mov eax, dword [ecx]
movsx edx, bh
push edx
call dword [eax + 0x10]
mov bl, al
mov eax, dword [0x60af30]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x1854581f
mov esi, 0xad8cb3c5
cmove eax, esi
cmp dword [0x60af34], 0xa
mov edx, 0x1854581f
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, esi
jmp 0x501e20
mov ecx, dword [ebp + 4]
mov eax, dword [ecx]
movsx edx, bh
push edx
call dword [eax + 0x10]
mov eax, 0x45efd0e4
jmp 0x501e20
mov ecx, 0xf95f53dd
jmp 0x5012d0
mov ecx, 0x94b812b0
mov dword [esp + 0x14], 0
jmp 0x5012d0
cmp dword [ebp + 0x28], 0
mov ecx, 0x880d2b36
mov eax, 0x1c1401
cmove ecx, eax
jmp 0x5012d0
mov ecx, 0xc704acdc
mov al, 1
mov dword [esp + 0x14], eax
jmp 0x5012d0
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x3f]
push dword [eax + 0x70]
push dword [ebp + 0x28]
push ecx
call fcn.004b3d20
add esp, 0xc
test al, al
mov ecx, 0x1c1401
mov eax, 0xd85324bb
cmovne ecx, eax
jmp 0x5012d0
mov edx, dword [0x60c370]
mov eax, dword [0x60c374]
lea ecx, [edx - 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0xe48237f3
mov esi, 0x52505944
cmovne edx, esi
cmp ecx, 0xffffffff
mov ecx, edx
cmove ecx, esi
cmp eax, 0xa
movzx eax, byte [esp + 0x3f]
mov byte [esp + 0x1f], al
cmovge ecx, edx
jmp 0x5012d0
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x3f]
mov eax, dword [0x60b458]
lea edx, [eax + 1]
imul edx, eax
mov esi, edx
xor esi, 0xfffffffe
mov eax, ecx
xor eax, 0xf8
and eax, ecx
shr ecx, 3
test esi, edx
mov esi, dword [0x60b45c]
sete byte [esp + 2]
sete bl
mov edx, 0x942ff553
mov edi, ebp
mov ebp, 0xdc78852
cmove edx, ebp
cmp esi, 0xa
setl byte [esp + 3]
setl bh
mov esi, 1
shlx eax, esi, eax
mov dword [esp + 0x18], eax
mov eax, 0x942ff553
cmovge edx, eax
xor bh, bl
cmovne edx, ebp
mov ebp, edi
mov esi, 0x8aba5463
nop
cmp esi, 0xc4f37971
jle 0x502030
cmp esi, 0xc4f37972
je 0x502047
cmp esi, 0xdc78852
jne 0x502010
jmp 0x502468
cmp esi, 0x8aba5463
je 0x502061
cmp esi, 0x942ff553
jne 0x502010
mov esi, 0xc4f37972
jmp 0x502010
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + ecx]
mov esi, dword [esp + 0x18]
xor eax, esi
andn eax, eax, esi
setne al
mov esi, edx
jmp 0x502010
mov ah, byte [esp + 2]
movzx ebx, byte [esp + 3]
mov bh, ah
xor bh, bl
mov ebp, 0x942ff553
mov edi, 0xc4f37972
cmovne ebp, edi
test bl, bl
mov esi, ebp
cmovne esi, edi
test ah, ah
cmove esi, ebp
mov ebp, dword [esp + 0x58]
jmp 0x502010
mov ecx, 0x9fdae2d6
jmp 0x5012d0
mov edx, dword [0x60c370]
mov eax, dword [0x60c374]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0xe48237f3
mov esi, 0x164710d2
cmovne edx, esi
cmp ecx, 0xffffffff
mov ecx, edx
cmove ecx, esi
cmp eax, 0xa
cmovge ecx, edx
jmp 0x5012d0
cmp byte [esp + 0x1d], 0
mov ecx, 0xb0e6790e
mov eax, 0xfaa84761
cmovne ecx, eax
jmp 0x5012d0
mov edx, dword [0x60c370]
mov eax, dword [0x60c374]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0xb3c4519b
mov esi, 0xb6e86458
cmovne edx, esi
cmp ecx, 0xffffffff
mov ecx, edx
cmove ecx, esi
cmp eax, 0xa
cmovge ecx, edx
mov dword [esp + 0x24], 0
jmp 0x5012d0
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x3f]
mov edx, dword [0x60b458]
lea esi, [edx + 1]
imul esi, edx
mov edi, esi
xor edi, 0xfffffffe
mov edx, ecx
xor edx, 0xf8
and edx, ecx
shr ecx, 3
test edi, esi
mov edi, dword [0x60b45c]
sete byte [esp + 2]
sete bl
mov esi, 0x942ff553
mov eax, 0xdc78852
cmove esi, eax
cmp edi, 0xa
setl byte [esp + 3]
setl bh
mov edi, 1
shlx ebp, edi, edx
mov edx, 0x942ff553
cmovge esi, edx
xor bh, bl
cmovne esi, eax
mov edx, 0x8aba5463
nop dword [eax]
cmp edx, 0xc4f37971
jle 0x5021d0
cmp edx, 0xc4f37972
je 0x5021e7
cmp edx, 0xdc78852
jne 0x5021b0
jmp 0x50247d
cmp edx, 0x8aba5463
je 0x502203
cmp edx, 0x942ff553
jne 0x5021b0
mov edx, 0xc4f37972
jmp 0x5021b0
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + ecx]
mov edx, ebp
not edx
not eax
or eax, edx
cmp eax, 0xffffffff
setne byte [esp + 0x18]
mov edx, esi
jmp 0x5021b0
movzx eax, byte [esp + 2]
movzx edx, byte [esp + 3]
mov bh, al
xor bh, dl
test dl, dl
mov edx, 0x942ff553
mov edi, 0xc4f37972
cmovne edx, edi
test al, al
mov eax, 0x942ff553
cmove edx, eax
test bh, bh
cmovne edx, edi
jmp 0x5021b0
mov ecx, dword [esp + 0x10]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add ecx, eax
lea edx, [esp + 0x3f]
push edx
push ecx
push eax
call fcn.004b3a90
add esp, 0xc
mov dword [esp + 0x10], eax
mov esi, dword [ebx + 0x1c]
mov ebp, dword [esi + 8]
mov edx, dword [0x60b1f0]
lea edi, [edx + 1]
imul edi, edx
mov ebx, dword [0x60b1f4]
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esp + 2]
sete cl
mov edx, 0x870ecbd1
mov edi, 0x93bd2ca8
cmove edx, edi
cmp ebx, 0xa
setl byte [esp + 3]
setl ch
mov eax, dword [esi + 4]
mov dword [esp + 0x18], eax
mov esi, 0x870ecbd1
cmovge edx, esi
xor ch, cl
cmovne edx, edi
mov esi, 0x4691b38f
nop
cmp esi, 0xb0cc5a3a
jg 0x5022d0
cmp esi, 0x870ecbd1
je 0x502308
cmp esi, 0x93bd2ca8
jne 0x5022b0
jmp 0x5024d7
cmp esi, 0xb0cc5a3b
je 0x50230f
cmp esi, 0x4691b38f
jne 0x5022b0
movzx ebx, byte [esp + 2]
mov ch, byte [esp + 3]
mov cl, bl
xor cl, ch
mov edi, 0x870ecbd1
mov eax, 0xb0cc5a3b
cmovne edi, eax
test ch, ch
mov esi, edi
cmovne esi, eax
test bl, bl
cmove esi, edi
jmp 0x5022b0
mov esi, 0xb0cc5a3b
jmp 0x5022b0
mov esi, edx
jmp 0x5022b0
mov ecx, 0xc704acdc
jmp 0x5012d0
mov eax, dword [esp + 4]
mov edi, dword [eax + 0x70]
movzx ebx, byte [esp + 0x3f]
mov eax, dword [0x60af30]
mov ecx, dword [0x60af34]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esp + 2]
cmp ecx, 0xa
setl byte [esp + 3]
mov ecx, 0xbe7f1cef
nop word cs:[eax + eax]
cmp ecx, 0x1854581e
jg 0x5023b0
cmp ecx, 0xad8cb3c5
je 0x5024fd
cmp ecx, 0xbe7f1cef
jne 0x502360
movzx eax, byte [esp + 2]
movzx ecx, byte [esp + 3]
mov edx, eax
xor dl, cl
mov edx, 0x1854581f
mov esi, 0x45efd0e4
cmovne edx, esi
test cl, cl
mov ecx, edx
cmovne ecx, esi
test al, al
cmove ecx, edx
jmp 0x502360
cmp ecx, 0x1854581f
je 0x502420
cmp ecx, 0x45efd0e4
jne 0x502360
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
movsx edx, bl
push edx
call dword [eax + 0x10]
mov ecx, dword [0x60af30]
mov edx, dword [0x60af34]
lea esi, [ecx + 1]
imul esi, ecx
mov ecx, esi
xor ecx, 0xfffffffe
test ecx, esi
sete ah
cmp edx, 0xa
mov byte [esp + 0x10], bl
setl bl
xor bl, ah
mov ebx, edi
mov edi, 0x1854581f
mov ebp, 0xad8cb3c5
cmovne edi, ebp
test ecx, esi
mov ecx, edi
cmove ecx, ebp
mov byte [esp + 0x18], al
cmp edx, 0xa
cmovge ecx, edi
mov edi, ebx
movzx ebx, byte [esp + 0x10]
jmp 0x502360
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
movsx edx, bl
push edx
call dword [eax + 0x10]
mov ecx, 0x45efd0e4
jmp 0x502360
cmp byte [esp + 0x1c], 0
mov ecx, 0x3d3cd6f9
mov eax, 0x1521c191
cmovne ecx, eax
jmp 0x5012d0
mov byte [esp + 8], bl
movzx eax, byte [esp + 8]
mov byte [esp + 0x3f], al
mov ecx, 0x2d3e5330
mov ebp, dword [esp + 0x58]
jmp 0x5012d0
and al, 1
mov byte [esp + 8], al
movzx eax, byte [esp + 8]
mov ecx, 0x40c27a97
jmp 0x5012d0
mov ecx, dword [0x60c370]
mov eax, dword [0x60c374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete bh
cmp eax, 0xa
setl bl
xor bl, bh
mov esi, 0xe2818543
mov edi, 0xf36d6be2
cmovne esi, edi
test ecx, edx
mov ecx, esi
cmove ecx, edi
cmp eax, 0xa
cmovge ecx, esi
movzx eax, byte [esp + 0x18]
and al, 1
mov byte [esp + 8], al
movzx eax, byte [esp + 8]
mov byte [esp + 0x21], al
mov ebp, dword [esp + 0x58]
jmp 0x5012d0
mov eax, dword [esp + 0x18]
mov dword [esp + 8], eax
add ebp, dword [esp + 8]
cmp dword [esp + 0x10], ebp
mov ecx, 0xd31703bc
mov eax, 0x31f8cb0d
cmove ecx, eax
mov ebp, dword [esp + 0x58]
jmp 0x5012d0
mov ecx, dword [0x60c370]
mov eax, dword [0x60c374]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete bh
cmp eax, 0xa
setl bl
xor bl, bh
mov esi, 0x79edd32b
mov edi, 0x33e1a42f
cmovne esi, edi
test ecx, edx
mov ecx, esi
cmove ecx, edi
cmp eax, 0xa
movzx eax, byte [esp + 0x18]
mov byte [esp + 8], al
movzx eax, byte [esp + 8]
mov byte [esp + 0x3f], al
cmovge ecx, esi
mov ebp, dword [esp + 0x58]
jmp 0x5012d0
cmp ecx, 0x99d83239
jne 0x5012d0
mov ebx, dword [esp + 0x24]
and bl, 1
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.005ce735
mov eax, ebx
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret 4