Function at 0x4023a0
Capabilities:
Encode data using xor
Parse credit card information

Disassembly:
mov eax, edx
lea edx, [ecx + 0xc]
push eax
call fcn.0040e450
add esp, 4
ret
mov edx, dword [ecx]
mov eax, 0xfffffffd
cmp byte [edx], 0
jne 0x402136
call fcn.004169c0
mov eax, 3
ret
push ebp
push ebx
push edi
push esi
push eax
mov ebx, dword [esp + 0x1c]
mov eax, 0xffffffff
mov ecx, ebx
not ecx
or ecx, 0xffffff00
cmp ecx, 0xffffffff
je case.0x402baf.221
mov ecx, dword [esp + 0x18]
xor edx, edx
xor eax, eax
mov edi, 0
mov ebp, 1
movzx esi, bl
sub edx, dword [ecx + 0x20]
sbb edi, dword [ecx + 0x24]
sub ebp, edx
mov edx, 0
mov dword [ecx + 0x20], ebp
sbb edx, edi
mov dword [ecx + 0x24], edx
cmp dword [ecx + 0x48], esi
jne 0x4023fc
mov dword [ecx + 0x48], 0
jmp case.0x402baf.221
cmp esi, 0xd
mov edx, 0xa
cmove eax, edx
cmp bl, 0xa
mov dword [ecx + 0x48], eax
je 0x402414
cmp bl, 0xd
jne 0x40242b
inc dword [ecx + 0x28]
xor eax, eax
xor edi, edi
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
jmp 0x402433
mov eax, dword [ecx + 0x18]
mov edi, dword [ecx + 0x1c]
mov edx, esi
xor esi, esi
neg eax
mov ebx, 0
mov ebp, 1
sbb ebx, edi
sub ebp, eax
sbb esi, ebx
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x1c], esi
mov eax, dword [ecx + 0x2c]
cmp eax, 0x33
ja case.0x402459.50
jmp dword [eax*4 + 0x4032d8]
mov esi, dword [ecx + 0x4c]
movzx eax, byte [esi]
cmp edx, eax
jne case.0x402459.50
lea eax, [esi + 1]
mov dword [ecx + 0x4c], eax
xor eax, eax
cmp byte [esi + 1], 0
jne case.0x402baf.221
jmp 0x402bd7
mov ebx, edx
xor eax, eax
add bl, 0xf7
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x20
je case.0x402baf.221
cmp dl, 0x3d
jne case.0x402459.50
mov dword [ecx + 0x2c], 3
jmp case.0x402baf.221
lea eax, [edx - 0x30]
cmp eax, 0xa
jb 0x402e34
mov eax, edx
mov esi, edx
not eax
and esi, 0x34
and eax, 0x684cb4cb
or esi, eax
mov eax, edx
xor esi, 0x684cb4eb
and eax, 0x20
or eax, esi
add eax, 0xffffff9f
cmp eax, 0x1a
setb al
cmp edx, 0x23
sete ah
test al, ah
jne 0x402e34
xor ah, al
jne 0x402e34
cmp edx, 0x3b
jne case.0x402459.50
mov dword [ecx + 0x2c], 4
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x403470
cmp edx, 0x2d
je 0x402a1c
jmp case.0x402459.50
xor eax, eax
cmp edx, 0x2d
jne case.0x402baf.221
mov dword [ecx + 0x2c], 0xc
jmp case.0x402baf.221
cmp edx, 0x2d
jne 0x402a1c
mov dword [ecx + 0x2c], 0xd
jmp 0x4031ef
cmp edx, 0x3e
jne case.0x402459.50
mov eax, dword [ecx + 0x44]
mov dword [ecx + 0x2c], eax
jmp 0x4031ef
xor eax, eax
cmp dl, 0x22
je 0x40257e
cmp dl, 0x3e
je 0x40312c
cmp dl, 0x27
jne case.0x402baf.221
mov dword [ecx + 0x2c], 0xf
mov dword [ecx + 0x40], edx
mov dword [ecx + 0x44], 0x12
jmp case.0x402baf.221
mov eax, edx
mov esi, edx
not eax
and esi, 0xe2
and eax, 0x98b7d81d
or esi, eax
mov eax, edx
xor esi, 0x98b7d83d
and eax, 0x20
or eax, esi
add eax, 0xffffff9f
cmp eax, 0x1a
setb ah
cmp edx, 0x3a
sete al
mov ebx, eax
xor al, ah
and bl, ah
or al, bl
cmp edx, 0x5f
sete ah
mov bl, ah
and bl, al
xor al, ah
or al, bl
cmp edx, 0x80
setb ah
xor al, 1
mov bl, ah
xor bl, al
test bl, 1
jne 0x402eea
or ah, al
xor ah, 1
test ah, 1
jne 0x402eea
lea eax, [edx - 0x30]
mov esi, edx
mov edi, 0xffffffd3
cmp eax, 0xa
sbb al, al
neg esi
sub edi, esi
cmp edi, 2
sbb ah, ah
mov bl, ah
and bl, al
test bl, 1
jne 0x402eea
xor ah, al
and ah, 1
jne 0x402eea
cmp dl, 0x2e
jg 0x403284
mov eax, edx
add al, 0xf7
cmp al, 2
jb 0x402649
cmp dl, 0x20
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x14
mov eax, 1
jmp case.0x402baf.221
cmp dl, 0x2e
jg 0x40301c
mov eax, edx
add al, 0xf7
cmp al, 2
jb 0x402674
cmp dl, 0x20
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x14
jmp 0x4031ef
cmp edx, 0x3e
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x28
call fcn.004169c0
mov eax, 3
jmp case.0x402baf.221
mov ebx, edx
xor eax, eax
add bl, 0xf7
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x20
je case.0x402baf.221
cmp dl, 0x3d
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x18
jmp case.0x402baf.221
mov eax, edx
xor edx, 0x20
and eax, 0x20
or edx, eax
add edx, 0xffffff9f
cmp edx, 0x19
ja case.0x402459.50
mov dword [ecx + 0x2c], 0x1a
jmp 0x4031ef
mov eax, edx
mov esi, edx
and eax, 0x20
xor esi, 0x20
or esi, eax
add esi, 0xffffff9f
cmp edx, 0x3a
setne al
cmp esi, 0x19
seta ah
mov ebx, eax
or al, ah
xor bl, ah
xor al, 1
or al, bl
cmp edx, 0x5f
setne ah
xor al, 1
mov bl, ah
xor bl, al
or al, ah
xor al, 1
or al, bl
cmp edx, 0x7f
seta ah
test al, ah
jne 0x402d64
xor ah, al
test ah, 1
jne 0x402d64
mov eax, edx
mov esi, 0xffffffd0
neg eax
sub esi, eax
lea eax, [edx - 0x2d]
cmp esi, 0xa
setb bl
cmp eax, 2
setb bh
cmp eax, 1
seta al
cmp esi, 9
seta ah
xor bh, bl
jne 0x402d64
or al, ah
xor al, 1
jne 0x402d64
mov eax, edx
add al, 0xf7
cmp al, 2
jb 0x402791
cmp dl, 0x3e
je 0x4032a3
cmp dl, 0x20
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x1d
jmp 0x4032aa
mov ebx, edx
xor eax, eax
add bl, 0xf7
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x20
je case.0x402baf.221
cmp dl, 0x3e
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x28
jmp case.0x402baf.221
cmp dl, 0x3f
je 0x40308f
cmp dl, 0x21
je 0x402dba
mov eax, edx
mov esi, edx
and eax, 0x20
xor esi, 0x20
or esi, eax
add esi, 0xffffff9f
cmp esi, 0x1a
setb ah
cmp edx, 0x3a
sete al
mov ebx, eax
xor al, ah
and bl, ah
jmp 0x403104
cmp dl, 0x3f
je 0x403138
cmp dl, 0x2f
je 0x40314b
cmp dl, 0x21
jne 0x403157
mov dword [ecx + 0x2c], 0x24
jmp 0x4031ef
cmp edx, 0x2d
jne case.0x402459.50
mov dword [ecx + 0x2c], 0xa
mov dword [ecx + 0x44], 0x28
jmp 0x4031ef
mov ebx, edx
xor eax, eax
add bl, 0xf7
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x20
je case.0x402baf.221
cmp dl, 0x3c
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x1f
jmp case.0x402baf.221
mov ebx, edx
xor eax, eax
add bl, 0xf7
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x20
je case.0x402baf.221
cmp dl, 0x3c
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x20
jmp case.0x402baf.221
cmp dl, 0x26
je 0x40309b
cmp dl, 0x3c
jne 0x402b78
mov dword [ecx + 0x2c], 0x21
jmp 0x4031ef
mov eax, edx
mov esi, edx
and eax, 0x20
xor esi, 0x20
or esi, eax
add esi, 0xffffff9f
cmp edx, 0x3a
setne al
cmp esi, 0x19
seta ah
mov ebx, eax
or al, ah
xor bl, ah
xor al, 1
or al, bl
cmp edx, 0x5f
setne ah
xor al, 1
mov bl, ah
xor bl, al
or al, ah
xor al, 1
or al, bl
cmp edx, 0x7f
seta ah
test al, ah
jne 0x40290c
xor ah, al
test ah, 1
je case.0x402459.50
mov dword [ecx + 0x2c], 0x2c
jmp 0x402fb6
mov eax, edx
mov esi, edx
and eax, 0x20
xor esi, 0x20
or esi, eax
mov eax, 0xffffff9f
neg esi
sub eax, esi
cmp eax, 0x1a
setb byte [esp + 3]
cmp edx, 0x3a
sete bh
setne bl
cmp eax, 0x19
seta al
xor bh, byte [esp + 3]
or al, bl
xor al, 1
or al, bh
cmp edx, 0x5f
setne ah
xor al, 1
mov bl, ah
xor bl, al
or al, ah
xor al, 1
or al, bl
cmp edx, 0x7f
seta ah
test al, ah
jne 0x402ef6
xor ah, al
test ah, 1
jne 0x402ef6
lea eax, [edx - 0x2d]
lea esi, [edx - 0x30]
cmp eax, 1
seta al
cmp esi, 9
seta ah
mov ebx, eax
xor bl, ah
jne 0x402ef6
or al, ah
xor al, 1
jne 0x402ef6
mov eax, edx
add al, 0xf7
cmp al, 2
jb 0x403271
cmp dl, 0x20
je 0x403271
cmp dl, 0x3f
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x2f
jmp 0x403278
mov ebx, edx
add bl, 0xf7
cmp bl, 0x1e
ja case.0x402459.50
movzx esi, bl
mov edi, 0x800003
xor eax, eax
bt edi, esi
jb case.0x402baf.221
mov edi, 0x42000000
bt edi, esi
jae case.0x402459.50
mov dword [ecx + 0x2c], 0x32
mov dword [ecx + 0x40], edx
jmp case.0x402baf.221
cmp dword [ecx + 0x40], edx
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x40
jmp 0x4031ef
mov dword [ecx + 0x2c], 0xb
jmp 0x4031ef
mov eax, edx
mov esi, edx
and eax, 0x20
xor esi, 0x20
or esi, eax
add esi, 0xffffff9f
cmp esi, 0x1a
setb ah
cmp edx, 0x3a
sete al
mov ebx, eax
xor al, ah
and bl, ah
or al, bl
cmp edx, 0x5f
setne ah
xor al, 1
mov bl, ah
xor bl, al
or al, ah
xor al, 1
or al, bl
cmp edx, 0x7f
seta bl
cmp edx, 0x80
setb ah
xor bl, al
test bl, 1
jne 0x402f02
xor al, 1
or ah, al
xor ah, 1
test ah, 1
jne 0x402f02
lea eax, [edx - 0x30]
lea esi, [edx - 0x2d]
cmp eax, 0xa
sbb al, al
cmp esi, 2
sbb ah, ah
mov bl, ah
and bl, al
test bl, 1
jne 0x402f02
xor ah, al
and ah, 1
jne 0x402f02
mov eax, edx
add al, 0xf7
cmp al, 2
jb 0x402ac9
cmp dl, 0x3d
je 0x4032b6
cmp dl, 0x20
jne case.0x402459.50
mov dword [ecx + 0x2c], 2
mov eax, 4
jmp case.0x402baf.221
mov ebx, edx
add bl, 0xf7
cmp bl, 0x1e
ja case.0x402459.50
movzx esi, bl
mov edi, 0x800003
xor eax, eax
bt edi, esi
jb case.0x402baf.221
mov edi, 0x42000000
bt edi, esi
jae case.0x402459.50
mov dword [ecx + 0x2c], 4
mov dword [ecx + 0x40], edx
jmp case.0x402baf.221
cmp edx, dword [ecx + 0x40]
jne 0x402f0e
cmp edx, 0x26
je 0x40307e
mov dword [ecx + 0x2c], 0x15
call fcn.0041e4c0
mov eax, 6
jmp case.0x402baf.221
cmp edx, 0x5d
jne 0x402b78
mov dword [ecx + 0x2c], 7
jmp 0x4031ef
cmp edx, 0x5d
jne 0x402f2f
mov dword [ecx + 0x2c], 8
jmp 0x4031ef
cmp dl, 0x3e
je 0x40302e
cmp dl, 0x5d
jne 0x4030ac
call fcn.004122a0
mov eax, 2
jmp case.0x402baf.221
cmp edx, 0x2d
jne case.0x402459.50
mov dword [ecx + 0x2c], 0xa
jmp 0x4031ef
mov ebx, edx
xor eax, eax
add bl, 0xde
cmp bl, 0x1c
ja case.0x402baf.221
movzx esi, bl
jmp dword [esi*4 + 0x4033a8]
mov dword [ecx + 0x2c], 0xf
mov dword [ecx + 0x40], edx
mov dword [ecx + 0x44], 0xe
jmp case.0x402baf.221
xor eax, eax
cmp dword [ecx + 0x40], edx
jne case.0x402baf.221
mov edx, dword [ecx + 0x44]
mov dword [ecx + 0x2c], edx
jmp case.0x402baf.221
cmp dl, 0x21
je 0x4030c2
cmp dl, 0x3f
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x2b
mov dword [ecx + 0x44], 0xe
jmp 0x4031ef
cmp edx, 0x2d
jne 0x402f45
mov dword [ecx + 0x2c], 0xa
mov dword [ecx + 0x44], 0xe
jmp 0x4031ef
xor eax, eax
cmp dl, 0x2e
jg 0x40303a
mov ebx, edx
add bl, 0xf7
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x20
je case.0x402baf.221
jmp 0x403202
mov ebx, edx
add bl, 0xf7
cmp bl, 0x1e
ja case.0x402459.50
movzx esi, bl
mov edi, 0x800003
xor eax, eax
bt edi, esi
jb case.0x402baf.221
mov edi, 0x42000000
bt edi, esi
jae case.0x402459.50
mov dword [ecx + 0x2c], 0x19
mov dword [ecx + 0x40], edx
jmp case.0x402baf.221
mov eax, edx
mov esi, edx
not eax
and esi, 0x89
and eax, 0xa7516576
or esi, eax
mov eax, edx
xor esi, 0xa7516556
and eax, 0x20
or eax, esi
mov esi, 0xffffff9f
neg eax
sub esi, eax
cmp esi, 0x1a
sbb al, al
mov byte [esp + 3], al
lea eax, [edx - 0x30]
cmp eax, 0xa
sbb bl, bl
xor eax, eax
mov bh, bl
and bh, byte [esp + 3]
test bh, 1
jne case.0x402baf.221
xor bl, byte [esp + 3]
and bl, 1
jne case.0x402baf.221
mov ebx, edx
add bl, 0xd3
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x5f
je case.0x402baf.221
cmp dword [ecx + 0x40], edx
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x3e
jmp case.0x402baf.221
mov eax, edx
mov esi, edx
and eax, 0x20
xor esi, 0x20
or esi, eax
mov eax, 0xffffff9f
neg esi
sub eax, esi
cmp eax, 0x1a
setb ah
cmp edx, 0x3a
sete al
mov ebx, eax
xor al, ah
and bl, ah
or al, bl
cmp edx, 0x5f
sete ah
setne bl
xor ah, al
xor al, 1
or al, bl
xor al, 1
or al, ah
cmp edx, 0x7f
seta ah
test al, ah
jne 0x402d5d
xor ah, al
test ah, 1
je case.0x402459.50
mov dword [ecx + 0x2c], 0x1c
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4084e0
cmp dl, 0x1f
jg 0x403058
mov eax, edx
add al, 0xf7
cmp al, 2
jb 0x403072
cmp dl, 0xef
jne case.0x402459.50
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x44], 0x26
mov dword [ecx + 0x4c], 0x4202d8
jmp 0x4031ef
cmp dl, 0x3f
je 0x4030ce
cmp dl, 0x21
jne 0x4030e1
mov dword [ecx + 0x2c], 0x23
jmp 0x4031ef
cmp dl, 0x3f
je 0x403119
cmp dl, 0x21
jne case.0x402459.50
mov dword [ecx + 0x2c], 9
mov dword [ecx + 0x44], 0x2a
jmp 0x4031ef
cmp edx, 0x2d
jne case.0x402459.50
mov dword [ecx + 0x2c], 0xa
mov dword [ecx + 0x44], 0x27
jmp 0x4031ef
cmp edx, 0x78
jne 0x402f51
mov dword [ecx + 0x2c], 0x38
mov dword [ecx + 0x44], 0x27
mov edx, 0x78
jmp 0x402fb6
lea eax, [edx - 0x30]
cmp eax, 0xa
jae 0x402fc2
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x40cda0
mov ebx, edx
xor eax, eax
add bl, 0xf7
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x20
je case.0x402baf.221
cmp dl, 0x3c
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x22
jmp case.0x402baf.221
cmp edx, 0x3f
jne 0x40300d
mov dword [ecx + 0x2c], 0x2e
jmp 0x4031ef
cmp edx, 0x3e
je 0x402ea7
mov dword [ecx + 0x2c], 0x2d
call fcn.0041e990
mov eax, 8
jmp case.0x402baf.221
cmp edx, 0x3e
jne case.0x402459.50
mov eax, dword [ecx + 0x44]
mov dword [ecx + 0x2c], eax
call fcn.0040c4a0
mov eax, 9
jmp case.0x402baf.221
mov ebx, edx
xor eax, eax
add bl, 0xf7
cmp bl, 2
jb case.0x402baf.221
cmp dl, 0x20
je case.0x402baf.221
cmp dl, 0x3d
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x31
jmp case.0x402baf.221
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x415220
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x412c70
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4128b0
cmp dl, 0x26
je 0x40307e
cmp dl, 0x3c
je case.0x402459.50
call fcn.00410f40
mov eax, 5
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 6
call fcn.00406a20
mov eax, 2
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 0x12
jmp 0x4031ef
mov eax, edx
mov esi, edx
not eax
and esi, 2
and eax, 0xdfd371fd
or esi, eax
mov eax, edx
xor esi, 0xdfd371dd
and eax, 0x20
or eax, esi
add eax, 0xffffff9f
cmp eax, 0x1a
setb ah
cmp edx, 0x3a
sete al
mov ebx, eax
xor al, ah
and bl, ah
or al, bl
cmp edx, 0x5f
sete ah
mov bl, ah
and bl, al
xor al, ah
or al, bl
cmp edx, 0x7f
seta ah
test al, ah
jne 0x402fa8
xor ah, al
test ah, 1
je case.0x402459.50
mov dword [ecx + 0x2c], 0x2c
mov dword [ecx + 0x44], 0x27
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x40a5c0
mov eax, edx
mov esi, edx
and eax, 0x20
xor esi, 0x20
or esi, eax
add esi, 0xffffff9f
cmp edx, 0x23
setne al
cmp esi, 0x19
seta ah
mov ebx, eax
xor bl, ah
jne 0x402e34
or al, ah
xor al, 1
jne 0x402e34
cmp edx, 0x3b
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x28
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41d480
call fcn.0041e2d0
mov eax, 8
jmp case.0x402baf.221
cmp dl, 0x2f
je 0x4031e8
cmp dl, 0x3e
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x28
jmp 0x4031ef
cmp dl, 0x3e
je 0x4031f9
cmp dl, 0x2f
jne 0x403202
mov dword [ecx + 0x2c], 0x16
jmp case.0x402baf.221
cmp dl, 0x20
je 0x403072
cmp dl, 0x3c
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x1f
jmp 0x4031ef
mov dword [ecx + 0x2c], 0x26
jmp 0x4031ef
mov dword [ecx + 0x2c], 5
call fcn.004019a0
jmp 0x4031ef
mov dword [ecx + 0x2c], 0x25
jmp 0x4031ef
mov dword [ecx + 0x2c], 0x29
call fcn.004019a0
jmp 0x4031ef
mov dword [ecx + 0x2c], 6
call fcn.0040f230
mov eax, 2
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 0x11
jmp 0x4031ef
mov dword [ecx + 0x2c], 0x2b
mov dword [ecx + 0x44], 0x27
jmp 0x4031ef
mov eax, edx
mov esi, edx
and eax, 0x20
xor esi, 0x20
or esi, eax
add esi, 0xffffff9f
cmp edx, 0x3a
setne al
cmp esi, 0x19
seta ah
mov ebx, eax
or al, ah
xor bl, ah
xor al, 1
or al, bl
cmp edx, 0x5f
sete ah
mov bl, ah
and bl, al
xor al, ah
or al, bl
jmp 0x4031ab
mov dword [ecx + 0x2c], 0x2b
mov dword [ecx + 0x44], 0x2a
jmp 0x4031ef
mov dword [ecx + 0x2c], 0xe
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 0x2b
mov dword [ecx + 0x44], 0x28
jmp 0x4031ef
mov dword [ecx + 0x2c], 0x1b
jmp 0x4031ef
mov eax, edx
mov esi, edx
not eax
and esi, 0x74
and eax, 0x3649d18b
or esi, eax
mov eax, edx
xor esi, 0x3649d1ab
and eax, 0x20
or eax, esi
add eax, 0xffffff9f
cmp eax, 0x1a
setb byte [esp + 3]
cmp edx, 0x3a
sete bh
setne bl
cmp eax, 0x19
seta al
xor bh, byte [esp + 3]
or al, bl
xor al, 1
or al, bh
cmp edx, 0x5f
sete ah
setne bl
xor ah, al
xor al, 1
or al, bl
xor al, 1
or al, ah
cmp edx, 0x7f
seta ah
test al, ah
jne 0x4031c3
xor ah, al
test ah, 1
jne 0x4031c3
mov eax, 0xffffffff
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 0x13
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4124c0
mov dword [ecx + 0x2c], 0x10
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 0x27
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 0x16
xor eax, eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ecx + 0x2c], 0x28
jmp case.0x402baf.221
mov eax, edx
mov esi, edx
not eax
and esi, 0x67
and eax, 0xb611fc98
or esi, eax
mov eax, edx
xor esi, 0xb611fcb8
and eax, 0x20
or eax, esi
add eax, 0xffffff9f
cmp eax, 0x1a
setb ah
cmp edx, 0x3a
sete al
mov ebx, eax
xor al, ah
and bl, ah
or al, bl
cmp edx, 0x5f
sete ah
setne bl
xor ah, al
xor al, 1
or al, bl
xor al, 1
or al, ah
cmp edx, 0x7f
seta ah
test al, ah
jne 0x40325e
xor ah, al
test ah, 1
je case.0x402459.50
mov dword [ecx + 0x2c], 1
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x401990
mov dword [ecx + 0x2c], 0x2d
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41d960
cmp dl, 0x2f
je 0x4032c7
cmp dl, 0x3e
jne case.0x402459.50
mov dword [ecx + 0x2c], 0x28
mov eax, 1
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 0x28
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp 0x402120
mov dword [ecx + 0x2c], 3
mov eax, 4
jmp case.0x402baf.221
mov dword [ecx + 0x2c], 0x16
mov eax, 1
jmp case.0x402baf.221
mov edx, 5
jmp 0x41bf50
push edi
push esi
mov esi, dword [ecx]
mov eax, 0xfffffffd
movzx edi, byte [esi]
cmp edi, edx
jne 0x4084f5
inc esi
xor eax, eax
mov dword [ecx], esi
pop esi
pop edi
ret
mov eax, edx
lea edx, [ecx + 0x10]
push eax
call fcn.0040e450
add esp, 4
ret
push esi
mov esi, ecx
mov eax, 0xfffffffc
mov ecx, dword [esi + 0x3c]
cmp ecx, 6
ja 0x40cdca
lea ecx, [esi + ecx + 4]
call fcn.0041e2f0
xor ecx, ecx
mov edx, 1
xor eax, eax
sub ecx, dword [esi + 0x3c]
sub edx, ecx
mov dword [esi + 0x3c], edx
pop esi
ret
mov eax, edx
mov edx, ecx
push eax
call fcn.0040e450
add esp, 4
ret
jmp 0x413eb0
jmp 0x413eb0
push edi
push esi
mov esi, dword [ecx + 0x38]
mov edi, 1
mov eax, esi
neg eax
sub edi, eax
mov eax, 0xfffffffe
cmp edi, dword [ecx + 0x34]
jae 0x413ee3
mov eax, dword [ecx + 0x30]
mov byte [eax + esi], dl
mov eax, dword [ecx + 0x38]
lea edx, [eax + 1]
mov dword [ecx + 0x38], edx
mov ecx, dword [ecx + 0x30]
mov byte [ecx + eax + 1], 0
xor eax, eax
pop esi
pop edi
ret
jmp 0x413eb0
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov ebp, ecx
mov al, byte [ebp + 4]
mov dword [esp], edx
mov dword [esp + 8], ebp
cmp al, 0x23
jne 0x41c01e
movzx eax, byte [ebp + 5]
cmp eax, 0x78
jne 0x41c104
movzx ecx, byte [ebp + 6]
mov eax, ecx
mov ebx, ecx
lea esi, [ecx - 0x30]
mov dword [esp + 4], ecx
and eax, 0x20
xor ebx, 0x20
or ebx, eax
cmp esi, 9
lea edi, [ebx - 0x61]
seta al
cmp edi, 5
mov ah, al
seta cl
xor ah, cl
jne 0x41bfb0
or al, cl
xor edi, edi
xor al, 1
je 0x41c17d
mov eax, dword [esp + 8]
xor edi, edi
lea ebp, [eax + 7]
shl edi, 4
neg ebx
mov ecx, edi
mov edi, 0xffffffa9
sub edi, ebx
cmp byte [esp + 4], 0x3a
movzx ebx, byte [ebp]
cmovb edi, esi
neg ecx
lea esi, [ebx - 0x30]
mov eax, ebx
mov dword [esp + 4], ebx
sub edi, ecx
mov ecx, ebx
cmp esi, 0xa
not ecx
sbb dl, dl
and eax, 0x52
and ebx, 0x20
and ecx, 0xffe8c9ad
or eax, ecx
mov ecx, edx
xor eax, 0xffe8c98d
or ebx, eax
lea eax, [ebx - 0x61]
cmp eax, 6
sbb al, al
inc ebp
xor dl, al
and cl, al
and dl, 1
test cl, 1
jne 0x41bfb9
test dl, dl
jne 0x41bfb9
jmp 0x41c17d
movzx ecx, al
movzx eax, byte [ebp + 5]
mov edx, 0xad86689e
movzx esi, byte [ebp + 6]
mov ebx, 0x47580717
not edx
not ebx
and edx, ecx
not ecx
and ecx, 0xad86689e
shl eax, 0x18
or edx, ecx
mov ecx, 0x5a31481
shl esi, 0x10
mov edi, eax
not ecx
xor edx, 0xad86689e
not edi
and eax, ecx
and ecx, esi
not esi
and ebx, edx
not edx
and edi, 0x5a31481
and esi, 0x5a31481
and edx, 0x47580717
or eax, edi
movzx edi, byte [ebp + 7]
or ecx, esi
or ebx, edx
movzx edx, byte [ebp + 8]
xor ecx, eax
xor ebx, 0x47580717
shl edi, 8
or edi, ecx
mov ecx, 0x17408d8
mov eax, edi
not ecx
not eax
and edi, ecx
and ecx, edx
not edx
mov esi, eax
or eax, edx
and edx, 0x17408d8
and esi, 0x17408d8
or ecx, edx
not eax
mov edx, 0x73ffffff
or edi, esi
mov esi, 0x67
xor ecx, edi
or eax, ecx
movsx ecx, bl
cmp edx, eax
sbb esi, ecx
jl 0x41c139
mov ecx, eax
movzx edx, bl
xor ecx, 0x6d700000
xor edx, 0x61
or edx, ecx
je 0x41c1fc
mov ebp, dword [esp]
mov ecx, eax
movzx edx, bl
xor ecx, 0x706f7300
xor edx, 0x61
or edx, ecx
jne 0x41c161
mov edx, 0x27
jmp 0x41c18a
mov esi, eax
mov ecx, 0xffffffd0
neg esi
sub ecx, esi
cmp ecx, 9
ja 0x41c177
lea esi, [ebp + 6]
xor edi, edi
movzx edx, byte [esi]
lea eax, [edi + edi*4]
inc esi
lea edi, [ecx + eax*2]
mov ecx, 0xffffffd0
mov eax, edx
neg eax
sub ecx, eax
cmp ecx, 0xa
jb 0x41c119
mov dword [esp + 4], edx
jmp 0x41c17d
mov esi, eax
movzx ecx, bl
xor esi, 0x74000000
xor ecx, 0x67
or ecx, esi
je 0x41c203
mov ebp, dword [esp]
movzx ecx, bl
mov edx, 0x3c
xor ecx, 0x6c
or esi, ecx
je 0x41c18a
xor eax, 0x756f7400
xor ebx, 0x71
xor ecx, ecx
mov edx, 0x22
or ebx, eax
cmovne edx, ecx
jmp 0x41c18a
mov dword [esp + 4], eax
xor edi, edi
xor edx, edx
cmp byte [esp + 4], 0
cmove edx, edi
mov ebp, dword [esp]
mov eax, edx
mov esi, edx
mov edi, edx
neg eax
mov ecx, eax
not ecx
cmp ecx, 0x10fffe
seta cl
and esi, 1
xor edi, 1
or edi, esi
cmp edi, 0xffff
sete bl
mov ch, bl
xor bl, cl
and ch, cl
or bl, ch
mov ecx, 0xffff2001
sub ecx, eax
cmp ecx, 0x7ff
setb al
cmp ecx, 0x7fe
mov ecx, 0xfffffffc
seta bh
xor al, bl
jne 0x41c1f2
xor bl, 1
or bh, bl
xor bh, 1
jne 0x41c1f2
mov ecx, dword [esp + 8]
add ecx, 4
call fcn.00414030
mov ecx, ebp
mov eax, ecx
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 0x26
jmp 0x41c187
mov edx, 0x3e
jmp 0x41c187
mov edx, 2
jmp 0x41bf50
mov ecx, dword [ecx + 0x10]
mov dl, byte [ecx]
mov eax, edx
mov ah, dl
and dl, 0x20
not al
and ah, 0x73
and al, 0x8c
or ah, al
xor ah, 0xac
or dl, ah
mov eax, 7
cmp dl, 0x78
jne 0x41d9bf
push ebx
mov dl, byte [ecx + 1]
mov dh, dl
mov ebx, edx
and dl, 0x20
not dh
and bl, 0xb7
and dh, 0x48
or bl, dh
xor bl, 0x68
or dl, bl
cmp dl, 0x6d
pop ebx
jne 0x41d9bf
mov dl, byte [ecx + 2]
mov dh, dl
xor dl, 0x20
and dh, 0x20
or dl, dh
cmp dl, 0x6c
jne 0x41d9bf
cmp byte [ecx + 3], 1
sbb eax, eax
or eax, 7
ret