Function at 0x49046e
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3ca0
call fcn.005c36f0
mov eax, dword [0x93d814]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
push esi
push edi
push 0
push edx
mov dword [ebp - 0x3028], ecx
mov ecx, dword [ebp + 0x20]
push eax
mov dword [ebp - 0x3048], edx
mov dword [ebp - 0x301c], eax
mov dword [ebp - 0x300c], ecx
mov dword [ebp - 0x304c], 0
mov dword [ebp - 0x305c], 0
mov dword [ebp - 0x3050], 0
call fcn.00496b90
add esp, 0xc
lea esi, [eax + 0x40]
cmp esi, 0x1000
jbe 0x490199
push 0x20de
push str...........SourceLibraryMainDxChar.cpp
push esi
call fcn.0045a440
add esp, 0xc
mov dword [ebp - 0x3050], eax
test eax, eax
je 0x49020d
mov edi, eax
mov dword [ebp - 0x3018], eax
jmp 0x4901a5
lea edi, [ebp - 0x2004]
mov dword [ebp - 0x3018], edi
push esi
push 0
push edi
call fcn.00497290
mov esi, dword [ebp - 0x3048]
push edi
push esi
push dword [ebp - 0x301c]
call fcn.00496b90
push 0
push esi
push dword [ebp - 0x3028]
call fcn.00496b90
add esp, 0x24
lea esi, [eax + 0x40]
cmp esi, 0x1000
jbe 0x49021f
push 0x20f1
push str...........SourceLibraryMainDxChar.cpp
push esi
call fcn.0045a440
add esp, 0xc
mov dword [ebp - 0x305c], eax
test eax, eax
jne 0x490225
mov eax, dword [ebp - 0x3050]
test eax, eax
je 0x49020d
push eax
call fcn.0045a740
add esp, 4
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005c33e1
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x3004]
push esi
push 0
push eax
mov dword [ebp - 0x3008], eax
call fcn.00497290
mov ecx, dword [ebp - 0x3008]
push ecx
push dword [ebp - 0x3048]
push dword [ebp - 0x3028]
call fcn.00496b90
mov edx, dword [ebp - 0x3008]
add esp, 0x18
mov eax, dword [edx]
test eax, eax
je 0x491657
movsd xmm4, qword [0x6b8d60]
movsd xmm5, qword [0x6b8538]
movsd xmm3, qword [0x6b9fd8]
mov dword [ebp - 0x304c], 0
mov dword [ebp - 0x3030], 0
nop dword [eax + eax]
cmp eax, 0x25
jne 0x4915bb
cmp dword [edx + 4], eax
lea ecx, [edx + 4]
je 0x4915bb
xor eax, eax
mov dword [ebp - 0x3008], ecx
mov edx, ecx
mov dword [ebp - 0x3024], eax
or esi, 0xffffffff
mov dword [ebp - 0x3028], eax
mov dword [ebp - 0x3010], eax
mov dword [ebp - 0x3014], eax
mov dword [ebp - 0x303c], eax
mov eax, dword [edx]
mov dword [ebp - 0x3020], esi
test eax, eax
je 0x491657
cmp eax, 0x2a
jne 0x490303
mov eax, dword [edx + 4]
add edx, 4
mov dword [ebp - 0x303c], 1
mov dword [ebp - 0x3008], edx
test eax, eax
je 0x491657
cmp eax, 0x30
jb 0x49034c
cmp eax, 0x39
ja 0x49034c
lea eax, [ebp - 0x3060]
push eax
push edx
call fcn.0048f0a0
mov edx, dword [ebp - 0x3008]
mov esi, eax
mov eax, dword [ebp - 0x3060]
add esp, 8
mov dword [ebp - 0x3020], esi
lea edx, [edx + eax*4]
mov eax, dword [edx]
mov dword [ebp - 0x3008], edx
test eax, eax
je 0x491657
test esi, esi
je 0x491657
add eax, 0xffffffb8
cmp eax, 0x24
ja case.0x49035b.74
movzx eax, byte [eax + 0x491708]
jmp dword [eax*4 + 0x4916f8]
mov dword [ebp - 0x3028], 1
add edx, 4
mov dword [ebp - 0x3008], edx
mov ecx, dword [ebp - 0x3024]
mov eax, dword [edx]
test eax, eax
je 0x491657
cmp eax, 0x5b
jne 0x490619
cmp dword [ebp - 0x3028], 0
jne 0x491657
cmp dword [ebp - 0x3010], 0
jne 0x491657
test ecx, ecx
jne 0x491657
add edx, 4
xor eax, eax
mov dword [ebp - 0x3008], edx
mov dword [ebp - 0x3028], eax
cmp dword [edx], 0x5e
jne 0x4903d9
add edx, 4
mov dword [ebp - 0x3028], 1
mov dword [ebp - 0x3008], edx
push 0x1000
xor esi, esi
lea eax, [ebp - 0x1004]
push esi
push eax
call fcn.00497290
mov ecx, dword [ebp - 0x3008]
add esp, 0xc
mov eax, 0x5b
mov dword [ebp - 0x3010], eax
cmp dword [ecx], esi
je 0x491657
mov edi, ecx
nop dword [eax + eax]
mov ecx, dword [edi]
cmp ecx, 0x5d
je 0x4904ca
cmp ecx, 0x2d
jne 0x4904aa
cmp eax, 0x5b
je 0x4904aa
mov edx, dword [edi + 4]
test edx, edx
je 0x4904aa
cmp edx, 0x5d
je 0x4904aa
movzx ecx, al
movzx edx, dl
cmp ecx, edx
jbe 0x490451
mov eax, edx
mov edx, ecx
mov ecx, eax
mov eax, dword [ebp - 0x3010]
cmp ecx, edx
jg 0x490464
cmp eax, ecx
je 0x49045f
mov byte [ebp + esi*4 - 0x1004], cl
inc esi
inc ecx
cmp ecx, edx
jle 0x490453
mov eax, 0x5b
lea ecx, [eax - 0x53]
jmp 0x4904b9
mov dword [ebp - 0x3010], 1
jmp 0x49036c
cmp dword [edx + 4], 0x36
jne case.0x49035b.74
cmp dword [edx + 8], 0x34
jne case.0x49035b.74
mov ecx, 1
add edx, 0xc
mov dword [ebp - 0x3024], ecx
mov dword [ebp - 0x3008], edx
jmp 0x49037b
mov dword [ebp + esi*4 - 0x1004], ecx
inc esi
mov eax, dword [edi]
mov ecx, 4
add edi, ecx
mov dword [ebp - 0x3010], eax
cmp dword [edi], 0
jne 0x490410
cmp dword [edi], 0
mov dword [ebp - 0x3008], edi
mov edi, dword [ebp - 0x3018]
je 0x491657
add dword [ebp - 0x3008], 4
xor eax, eax
mov dword [ebp - 0x3014], eax
cmp dword [ebp - 0x303c], eax
jne 0x49050e
mov eax, dword [ebp - 0x300c]
add eax, 4
mov dword [ebp - 0x300c], eax
mov eax, dword [eax - 4]
mov dword [ebp - 0x3014], eax
push edi
call fcn.00491730
mov edx, dword [edi + eax*4]
add esp, 4
lea edi, [edi + eax*4]
test edx, edx
je 0x491657
mov esi, dword [ebp - 0x3020]
xor eax, eax
mov dword [ebp - 0x3010], eax
add edi, 4
xor eax, eax
mov dword [ebp - 0x3018], edi
cmp dword [ebp - 0x1004], eax
je 0x490564
lea ecx, [ebp - 0x1004]
nop dword [eax]
cmp dword [ecx], edx
je 0x490564
inc eax
lea ecx, [ebp - 0x1004]
cmp dword [ecx + eax*4], 0
lea ecx, [ecx + eax*4]
jne 0x490550
mov ecx, dword [ebp - 0x3028]
cmp ecx, 1
jne 0x49057b
cmp dword [ebp + eax*4 - 0x1004], 0
jne 0x4905d1
jmp 0x490588
test ecx, ecx
jne 0x490588
cmp dword [ebp + eax*4 - 0x1004], ecx
je 0x4905d1
mov ecx, dword [ebp - 0x3014]
test ecx, ecx
je 0x4905a8
push ecx
push dword [ebp - 0x3048]
push edx
call fcn.004963c0
add esp, 0xc
add dword [ebp - 0x3014], eax
mov ecx, dword [ebp - 0x3010]
inc ecx
mov dword [ebp - 0x3010], ecx
test esi, esi
je 0x4905bd
cmp esi, ecx
je 0x4905d1
mov edx, dword [edi]
test edx, edx
jne 0x490533
mov dword [ebp - 0x3030], 1
mov eax, dword [ebp - 0x3014]
test eax, eax
je 0x4905ec
push eax
push dword [ebp - 0x3048]
push 0
call fcn.004963c0
add esp, 0xc
cmp dword [ebp - 0x3030], 0
jne 0x491149
mov edx, dword [ebp - 0x3008]
cmp esi, dword [ebp - 0x3010]
je 0x49114f
sub edi, 4
mov dword [ebp - 0x3018], edi
jmp 0x49114f
cmp eax, 0x64
je 0x491314
cmp eax, 0x44
je 0x491314
cmp eax, 0x75
je 0x491314
cmp eax, 0x55
je 0x491314
cmp eax, 0x78
je 0x4911b5
cmp eax, 0x58
je 0x4911b5
cmp eax, 0x6f
je 0x490fad
cmp eax, 0x4f
je 0x490fad
cmp eax, 0x69
je 0x490f1f
cmp eax, 0x49
je 0x490f1f
cmp eax, 0x63
je 0x490e1a
cmp eax, 0x43
je 0x490e0d
cmp eax, 0x73
je 0x490cb3
cmp eax, 0x53
je 0x490ca6
cmp eax, 0x66
je 0x4906b9
cmp eax, 0x46
je 0x4906b9
cmp eax, 0x67
je 0x4906b9
cmp eax, 0x47
je 0x4906b9
cmp eax, 0x65
je 0x4906b9
cmp eax, 0x45
jne 0x49114f
push edi
call fcn.00491730
add esp, 4
lea ecx, [edi + eax*4]
mov eax, dword [ecx]
test eax, eax
je 0x491657
add dword [ebp - 0x3008], 4
xor edi, edi
xor edx, edx
mov dword [ebp - 0x302c], 0
add ecx, 4
mov dword [ebp - 0x3010], 0
mov dword [ebp - 0x3034], edi
mov dword [ebp - 0x301c], edx
cmp eax, 0x2d
jne 0x490727
mov dword [ebp - 0x302c], 1
cmp esi, 0xffffffff
je 0x49071a
sub esi, 1
je 0x491657
mov eax, dword [ecx]
test eax, eax
je 0x491657
add ecx, 4
xor edx, edx
mov dword [ebp - 0x3024], edx
mov edi, edx
mov dword [ebp - 0x3020], edx
cmp eax, 0x2e
jne 0x490758
cmp dword [ebp - 0x3010], 0
jne 0x490851
mov dword [ebp - 0x3010], 1
jmp 0x49082a
cmp eax, 0x65
je 0x49081b
cmp eax, 0x45
je 0x49081b
cmp eax, 0x2d
je 0x4907fd
cmp eax, 0x2b
je 0x4907fd
add eax, 0xffffffd0
cmp eax, 9
ja 0x490851
test edi, edi
je 0x4907b7
cmp dword [ebp - 0x3020], 0xff
jge 0x490851
mov edi, dword [ebp - 0x3020]
inc dword [ebp - 0x3020]
mov dword [ebp + edi*4 - 0x3ca0], eax
mov edi, dword [ebp - 0x3034]
jmp 0x49082a
cmp dword [ebp - 0x3010], 0
je 0x4907eb
cmp dword [ebp - 0x3024], 0xff
jge 0x490851
mov edi, dword [ebp - 0x3024]
inc dword [ebp - 0x3024]
mov dword [ebp + edi*4 - 0x38a0], eax
mov edi, dword [ebp - 0x3034]
jmp 0x49082a
cmp edx, 0xff
jge 0x490851
mov dword [ebp + edx*4 - 0x34a0], eax
inc edx
jmp 0x49082a
test edi, edi
je 0x490851
cmp dword [ebp - 0x3020], 0
jne 0x490851
cmp eax, 0x2d
jne 0x49082a
mov dword [ebp - 0x301c], 1
jmp 0x49082a
test edi, edi
jne 0x490851
mov edi, 1
mov dword [ebp - 0x3034], edi
mov eax, dword [ecx]
test eax, eax
je 0x490847
add ecx, 4
cmp esi, 0xffffffff
je 0x490737
sub esi, 1
jne 0x490737
jmp 0x490851
mov dword [ebp - 0x3030], 1
cmp dword [ebp - 0x3030], 0
lea edi, [ecx - 4]
cmovne edi, ecx
mov ecx, dword [ebp - 0x3024]
mov dword [ebp - 0x3018], edi
test edx, edx
jne 0x490876
test ecx, ecx
je 0x491657
mov eax, edx
test edx, edx
jne 0x490884
test ecx, ecx
je 0x491657
sub edx, 1
xorps xmm2, xmm2
movaps xmm1, xmm5
movsd qword [ebp - 0x3058], xmm2
js 0x4909a8
cmp eax, 4
jl 0x490967
lea esi, [edx + 1]
shr esi, 2
lea ecx, [ebp + edx*4 - 0x34a8]
mov eax, esi
neg eax
lea edx, [edx + eax*4]
mov eax, dword [ecx + 8]
test eax, eax
je 0x4908db
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
mov eax, dword [ecx + 4]
mulsd xmm1, xmm3
test eax, eax
je 0x490902
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
mov eax, dword [ecx]
mulsd xmm1, xmm3
test eax, eax
je 0x490928
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
mov eax, dword [ecx - 4]
mulsd xmm1, xmm3
test eax, eax
je 0x49094f
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
sub ecx, 0x10
mulsd xmm1, xmm3
sub esi, 1
jne 0x4908b8
movsd qword [ebp - 0x3058], xmm2
test edx, edx
js 0x4909a8
nop dword [eax + eax]
mov eax, dword [ebp + edx*4 - 0x34a0]
test eax, eax
je 0x490997
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
sub edx, 1
mulsd xmm1, xmm3
jns 0x490970
movsd qword [ebp - 0x3058], xmm2
mov edx, dword [ebp - 0x302c]
test edx, edx
je 0x4909bd
xorps xmm2, xmm4
movsd qword [ebp - 0x3058], xmm2
mov esi, dword [ebp - 0x3024]
xorps xmm2, xmm2
movsd xmm1, qword [0x6b8c70]
xor eax, eax
movsd qword [ebp - 0x3038], xmm2
cmp esi, 4
jl 0x490aa9
lea edx, [esi - 3]
mov ecx, dword [ebp + eax*4 - 0x38a0]
test ecx, ecx
je 0x490a0b
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
mov ecx, dword [ebp + eax*4 - 0x389c]
divsd xmm1, xmm3
test ecx, ecx
je 0x490a36
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
mov ecx, dword [ebp + eax*4 - 0x3898]
divsd xmm1, xmm3
test ecx, ecx
je 0x490a61
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
mov ecx, dword [ebp + eax*4 - 0x3894]
divsd xmm1, xmm3
test ecx, ecx
je 0x490a8c
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
add eax, 4
divsd xmm1, xmm3
cmp eax, edx
jl 0x4909e4
mov edx, dword [ebp - 0x302c]
movsd qword [ebp - 0x3038], xmm2
cmp eax, esi
jge 0x490ae8
nop dword [eax]
mov ecx, dword [ebp + eax*4 - 0x38a0]
test ecx, ecx
je 0x490ad7
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x6b8ee0]
mulsd xmm0, xmm1
addsd xmm2, xmm0
inc eax
divsd xmm1, xmm3
cmp eax, esi
jl 0x490ab0
movsd qword [ebp - 0x3038], xmm2
test edx, edx
je 0x490af7
xorps xmm2, xmm4
movsd qword [ebp - 0x3038], xmm2
mov ecx, dword [ebp - 0x3020]
xor eax, eax
xorps xmm0, xmm0
mov dword [ebp - 0x3010], eax
mov edx, 1
movlpd qword [ebp - 0x3044], xmm0
mov esi, dword [ebp - 0x3040]
add ecx, 0xffffffff
mov dword [ebp - 0x3014], edx
mov dword [ebp - 0x302c], ecx
js 0x490bb5
mov edi, dword [ebp - 0x3044]
push eax
push edx
push 0
push dword [ebp + ecx*4 - 0x3ca0]
call fcn.005c3640
mov ecx, dword [ebp - 0x3010]
add edi, eax
mov dword [ebp - 0x3010], ecx
adc esi, edx
mov edx, dword [ebp - 0x3014]
dec dword [ebp - 0x302c]
mov eax, edx
shld ecx, eax, 2
shl eax, 2
add edx, eax
mov eax, dword [ebp - 0x3010]
adc eax, ecx
mov ecx, dword [ebp - 0x302c]
shld eax, edx, 1
add edx, edx
mov dword [ebp - 0x3010], eax
mov dword [ebp - 0x3014], edx
test ecx, ecx
jns 0x490b36
movsd xmm3, qword [0x6b9fd8]
movsd xmm5, qword [0x6b8538]
mov dword [ebp - 0x3010], edi
mov edi, dword [ebp - 0x3018]
mov ecx, dword [ebp - 0x3010]
jmp 0x490bbb
mov ecx, dword [ebp - 0x3044]
mov edx, dword [ebp - 0x301c]
test edx, edx
je 0x490bcc
neg ecx
adc esi, 0
neg esi
mov eax, ecx
movaps xmm0, xmm5
or eax, esi
je 0x490c48
test esi, esi
jg 0x490c16
jl 0x490be3
test ecx, ecx
jae 0x490c16
neg ecx
mov dword [ebp - 0x301c], 0
adc esi, 0
neg esi
js 0x490c48
jg 0x490bfc
test ecx, ecx
je 0x490c48
mov edi, dword [ebp - 0x301c]
inc edi
mov eax, edi
cdq
divsd xmm0, xmm3
cmp edx, esi
jl 0x490c02
jg 0x490c42
cmp eax, ecx
jb 0x490c02
jmp 0x490c42
mov dword [ebp - 0x301c], 0
test esi, esi
jl 0x490c48
jg 0x490c2a
test ecx, ecx
je 0x490c48
mov edi, dword [ebp - 0x301c]
inc edi
mulsd xmm0, xmm3
mov eax, edi
cdq
cmp edx, esi
jl 0x490c30
jg 0x490c42
cmp eax, ecx
jb 0x490c30
mov edi, dword [ebp - 0x3018]
cmp dword [ebp - 0x303c], 0
movsd xmm1, qword [ebp - 0x3038]
addsd xmm1, qword [ebp - 0x3058]
mov edx, dword [ebp - 0x3008]
mulsd xmm1, xmm0
jne 0x49114f
mov esi, dword [ebp - 0x300c]
add esi, 4
mov dword [ebp - 0x3018], edi
cmp dword [ebp - 0x3028], 0
mov dword [ebp - 0x300c], esi
mov eax, dword [esi - 4]
je 0x490c99
movsd qword [eax], xmm1
jmp 0x49114f
cvtpd2ps xmm0, xmm1
movss dword [eax], xmm0
jmp 0x49114f
cmp dword [ebp + 0xc], 0
mov eax, dword [ebp + 0x14]
cmovne eax, dword [ebp + 0x10]
jmp 0x490cbe
cmp dword [ebp + 0xc], 0
mov eax, dword [ebp + 0x10]
cmovne eax, dword [ebp + 0x14]
push eax
mov dword [ebp - 0x3010], eax
call fcn.00495670
add dword [ebp - 0x3008], 4
push edi
mov dword [ebp - 0x3028], eax
call fcn.00491730
add esp, 8
lea edi, [edi + eax*4]
mov eax, dword [edi]
test eax, eax
je 0x491657
xor ecx, ecx
mov dword [ebp - 0x3024], ecx
cmp dword [ebp - 0x303c], ecx
jne 0x490d15
mov ecx, dword [ebp - 0x300c]
add ecx, 4
mov dword [ebp - 0x300c], ecx
mov ecx, dword [ecx - 4]
mov dword [ebp - 0x3024], ecx
mov dword [ebp - 0x301c], 0
nop
mov ecx, edi
add edi, 4
mov dword [ebp - 0x3018], edi
cmp eax, 0x20
je 0x490de0
cmp eax, 0xa
je 0x490de0
cmp eax, 0xd
je 0x490de0
cmp eax, 9
je 0x490de0
mov ecx, dword [ebp - 0x3010]
mov edx, dword [ebp - 0x3048]
cmp ecx, edx
je 0x490d70
push ecx
push edx
push eax
call fcn.00491760
mov ecx, dword [ebp - 0x3010]
add esp, 0xc
mov edx, dword [ebp - 0x3024]
test edx, edx
je 0x490d95
push edx
push ecx
push eax
call fcn.004963c0
mov ecx, dword [ebp - 0x3024]
add esp, 0xc
add ecx, eax
mov dword [ebp - 0x3024], ecx
jmp 0x490dac
lea edx, [ebp - 0x30a0]
push edx
push ecx
push eax
call fcn.004963c0
mov ecx, dword [ebp - 0x3024]
add esp, 0xc
cdq
idiv dword [ebp - 0x3028]
mov edx, dword [ebp - 0x301c]
add edx, eax
mov dword [ebp - 0x301c], edx
cmp esi, 0xffffffff
je 0x490dca
cmp edx, esi
jge 0x490dee
mov eax, dword [edi]
test eax, eax
jne 0x490d20
mov dword [ebp - 0x3030], 1
jmp 0x490dee
mov edi, ecx
mov ecx, dword [ebp - 0x3024]
mov dword [ebp - 0x3018], edi
test ecx, ecx
je 0x491149
mov eax, dword [ebp - 0x3010]
push ecx
push eax
push 0
call fcn.004963c0
add esp, 0xc
jmp 0x491149
cmp dword [ebp + 0xc], 0
mov eax, dword [ebp + 0x14]
cmovne eax, dword [ebp + 0x10]
jmp 0x490e25
cmp dword [ebp + 0xc], 0
mov eax, dword [ebp + 0x10]
cmovne eax, dword [ebp + 0x14]
push eax
mov dword [ebp - 0x3028], eax
call fcn.00495670
mov edx, dword [ebp - 0x3008]
add esp, 4
add edx, 4
mov dword [ebp - 0x302c], eax
cmp esi, 0xffffffff
mov dword [ebp - 0x3008], edx
mov eax, 1
cmove esi, eax
xor eax, eax
mov dword [ebp - 0x3010], eax
cmp dword [ebp - 0x303c], eax
jne 0x490e7c
mov eax, dword [ebp - 0x300c]
add eax, 4
mov dword [ebp - 0x300c], eax
mov eax, dword [eax - 4]
mov dword [ebp - 0x3010], eax
mov dword [ebp - 0x301c], 0
test esi, esi
jle 0x49114f
nop
mov eax, dword [edi]
test eax, eax
je 0x490f10
mov ecx, dword [ebp - 0x3028]
add edi, 4
mov edx, dword [ebp - 0x3048]
mov dword [ebp - 0x3018], edi
cmp ecx, edx
je 0x490ec4
push ecx
push edx
push eax
call fcn.00491760
mov ecx, dword [ebp - 0x3028]
add esp, 0xc
mov edx, dword [ebp - 0x3010]
test edx, edx
je 0x490ee1
push edx
push ecx
push eax
call fcn.004963c0
add esp, 0xc
add dword [ebp - 0x3010], eax
jmp 0x490ef2
lea edx, [ebp - 0x30a0]
push edx
push ecx
push eax
call fcn.004963c0
add esp, 0xc
cdq
idiv dword [ebp - 0x302c]
mov ecx, dword [ebp - 0x301c]
add ecx, eax
mov dword [ebp - 0x301c], ecx
cmp ecx, esi
jl 0x490e90
jmp 0x491149
mov dword [ebp - 0x3030], 1
jmp 0x491149
push edi
call fcn.00491730
add esp, 4
lea ecx, [edi + eax*4]
mov eax, dword [ecx]
test eax, eax
je 0x491657
add dword [ebp - 0x3008], 4
add ecx, 4
mov dword [ebp - 0x3034], 0
cmp eax, 0x2d
jne 0x490f79
mov dword [ebp - 0x3034], 1
cmp esi, 0xffffffff
je 0x490f6c
sub esi, 1
mov dword [ebp - 0x3020], esi
je 0x491657
mov eax, dword [ecx]
test eax, eax
je 0x491657
add ecx, 4
cmp eax, 0x30
jne 0x491396
cmp esi, 0xffffffff
je 0x490f96
sub esi, 1
mov dword [ebp - 0x3020], esi
je 0x491657
mov eax, dword [ecx]
test eax, eax
je 0x491657
add ecx, 4
cmp eax, 0x78
jne 0x491007
jmp 0x4911ef
push edi
call fcn.00491730
add esp, 4
lea ecx, [edi + eax*4]
mov eax, dword [ecx]
test eax, eax
je 0x491657
add dword [ebp - 0x3008], 4
add ecx, 4
mov dword [ebp - 0x3034], 0
cmp eax, 0x2d
jne 0x491007
mov dword [ebp - 0x3034], 1
cmp esi, 0xffffffff
je 0x490ffa
sub esi, 1
mov dword [ebp - 0x3020], esi
je 0x491657
mov eax, dword [ecx]
test eax, eax
je 0x491657
add ecx, 4
mov edi, dword [ebp - 0x3020]
xor esi, esi
nop
cmp edi, 0xffffffff
je 0x491019
cmp edi, esi
je 0x491046
add eax, 0xffffffd0
cmp eax, 7
ja 0x491046
mov dword [ebp + esi*4 - 0x34a0], eax
mov eax, dword [ecx]
test eax, eax
je 0x49103c
inc esi
add ecx, 4
cmp esi, 0xff
jl 0x491010
jmp 0x491046
mov dword [ebp - 0x3030], 1
cmp dword [ebp - 0x3030], 0
lea edi, [ecx - 4]
cmovne edi, ecx
mov dword [ebp - 0x3018], edi
test esi, esi
je 0x491657
xor edx, edx
mov dword [ebp - 0x302c], 1
sub esi, 1
mov dword [ebp - 0x3028], edx
xorps xmm0, xmm0
movlpd qword [ebp - 0x3044], xmm0
js 0x4910f1
mov ecx, dword [ebp - 0x3040]
mov eax, dword [ebp - 0x3044]
mov edi, dword [ebp - 0x302c]
mov dword [ebp - 0x3014], ecx
mov dword [ebp - 0x301c], eax
push edx
push edi
push 0
push dword [ebp + esi*4 - 0x34a0]
call fcn.005c3640
mov ecx, dword [ebp - 0x301c]
add ecx, eax
mov eax, dword [ebp - 0x3014]
mov dword [ebp - 0x301c], ecx
adc eax, edx
mov edx, dword [ebp - 0x3028]
shld edx, edi, 3
mov dword [ebp - 0x3014], eax
shl edi, 3
sub esi, 1
mov dword [ebp - 0x3028], edx
jns 0x4910a5
mov edi, dword [ebp - 0x3018]
jmp 0x491103
mov eax, dword [ebp - 0x3040]
mov ecx, dword [ebp - 0x3044]
mov dword [ebp - 0x3014], eax
cmp dword [ebp - 0x3034], 0
je 0x491119
neg ecx
adc eax, 0
neg eax
mov dword [ebp - 0x3014], eax
cmp dword [ebp - 0x303c], 0
jne 0x491149
mov eax, dword [ebp - 0x3024]
test eax, eax
je 0x491185
mov edx, dword [ebp - 0x300c]
add edx, 4
mov eax, dword [edx - 4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x3014]
mov dword [eax + 4], ecx
mov dword [ebp - 0x300c], edx
mov edx, dword [ebp - 0x3008]
mov ecx, dword [ebp - 0x304c]
cmp dword [ebp - 0x303c], 0
movsd xmm3, qword [0x6b9fd8]
movsd xmm4, qword [0x6b8d60]
movsd xmm5, qword [0x6b8538]
lea eax, [ecx + 1]
cmovne eax, ecx
mov dword [ebp - 0x304c], eax
jmp 0x49164d
cmp dword [ebp - 0x3010], 0
je 0x49119f
mov edx, dword [ebp - 0x300c]
add edx, 4
mov eax, dword [edx - 4]
mov word [eax], cx
jmp 0x491143
mov eax, dword [ebp - 0x300c]
add eax, 4
mov dword [ebp - 0x300c], eax
mov eax, dword [eax - 4]
mov dword [eax], ecx
jmp 0x491149
push edi
call fcn.00491730
mov edx, dword [edi + eax*4]
add esp, 4
lea ecx, [edi + eax*4]
test edx, edx
je 0x491657
add dword [ebp - 0x3008], 4
add ecx, 4
mov dword [ebp - 0x3034], 0
cmp edx, 0x2d
jne 0x491210
mov dword [ebp - 0x3034], 1
cmp esi, 0xffffffff
je 0x491203
sub esi, 1
mov dword [ebp - 0x3020], esi
je 0x491657
mov edx, dword [ecx]
test edx, edx
je 0x491657
add ecx, 4
mov edi, dword [ebp - 0x3020]
xor esi, esi
cmp edi, 0xffffffff
je 0x491221
cmp edi, esi
je 0x491266
lea eax, [edx - 0x30]
cmp eax, 9
jbe 0x491241
lea eax, [edx - 0x61]
cmp eax, 5
ja 0x491236
lea eax, [edx - 0x57]
jmp 0x491241
lea eax, [edx - 0x41]
cmp eax, 5
ja 0x491266
lea eax, [edx - 0x37]
mov edx, dword [ecx]
mov dword [ebp + esi*4 - 0x34a0], eax
inc esi
test edx, edx
je 0x49125c
add ecx, 4
cmp esi, 0xff
jl 0x491218
jmp 0x491266
mov dword [ebp - 0x3030], 1
cmp dword [ebp - 0x3030], 0
lea edi, [ecx - 4]
cmovne edi, ecx
mov dword [ebp - 0x3018], edi
test esi, esi
je 0x491657
xor edx, edx
mov dword [ebp - 0x302c], 1
sub esi, 1
mov dword [ebp - 0x3028], edx
xorps xmm0, xmm0
movlpd qword [ebp - 0x3044], xmm0
js 0x4910f1
mov ecx, dword [ebp - 0x3040]
mov eax, dword [ebp - 0x3044]
mov edi, dword [ebp - 0x302c]
mov dword [ebp - 0x3014], ecx
mov dword [ebp - 0x301c], eax
push edx
push edi
push 0
push dword [ebp + esi*4 - 0x34a0]
call fcn.005c3640
mov ecx, dword [ebp - 0x301c]
add ecx, eax
mov eax, dword [ebp - 0x3014]
mov dword [ebp - 0x301c], ecx
adc eax, edx
mov edx, dword [ebp - 0x3028]
shld edx, edi, 4
mov dword [ebp - 0x3014], eax
shl edi, 4
sub esi, 1
mov dword [ebp - 0x3028], edx
jns 0x4912c5
mov edi, dword [ebp - 0x3018]
jmp 0x491103
push edi
call fcn.00491730
add esp, 4
lea ecx, [edi + eax*4]
mov eax, dword [ecx]
test eax, eax
je 0x491657
mov edx, dword [ebp - 0x3008]
add edx, 4
mov dword [ebp - 0x3008], edx
mov edx, dword [edx]
cmp edx, 0x75
je 0x49134f
mov dword [ebp - 0x3014], 0
cmp edx, 0x55
jne 0x491359
mov dword [ebp - 0x3014], 1
add ecx, 4
mov dword [ebp - 0x3034], 0
cmp eax, 0x2d
jne 0x491396
mov dword [ebp - 0x3034], 1
cmp esi, 0xffffffff
je 0x491389
sub esi, 1
mov dword [ebp - 0x3020], esi
je 0x491657
mov eax, dword [ecx]
test eax, eax
je 0x491657
add ecx, 4
mov edi, dword [ebp - 0x3020]
xor esi, esi
nop
cmp edi, 0xffffffff
je 0x4913a9
cmp edi, esi
je 0x4913d6
add eax, 0xffffffd0
cmp eax, 9
ja 0x4913d6
mov dword [ebp + esi*4 - 0x34a0], eax
inc esi
mov eax, dword [ecx]
test eax, eax
je 0x4913cc
add ecx, 4
cmp esi, 0xff
jl 0x4913a0
jmp 0x4913d6
mov dword [ebp - 0x3030], 1
cmp dword [ebp - 0x3030], 0
lea edi, [ecx - 4]
cmovne edi, ecx
mov dword [ebp - 0x3018], edi
test esi, esi
je 0x491657
mov edx, 1
xor ecx, ecx
sub esi, edx
mov dword [ebp - 0x301c], edx
xorps xmm0, xmm0
mov dword [ebp - 0x3020], ecx
movlpd qword [ebp - 0x3044], xmm0
js 0x4914a2
mov eax, dword [ebp - 0x3040]
mov edi, dword [ebp - 0x3044]
mov dword [ebp - 0x302c], eax
nop dword [eax]
push ecx
push edx
push 0
push dword [ebp + esi*4 - 0x34a0]
call fcn.005c3640
mov ecx, dword [ebp - 0x3020]
add edi, eax
mov dword [ebp - 0x3020], ecx
adc dword [ebp - 0x302c], edx
mov edx, dword [ebp - 0x301c]
mov eax, edx
shld ecx, eax, 2
shl eax, 2
add edx, eax
adc dword [ebp - 0x3020], ecx
mov ecx, dword [ebp - 0x3020]
shld ecx, edx, 1
add edx, edx
mov dword [ebp - 0x3020], ecx
sub esi, 1
mov dword [ebp - 0x301c], edx
jns 0x491430
mov edx, dword [ebp - 0x302c]
mov dword [ebp - 0x301c], edi
mov edi, dword [ebp - 0x3018]
mov ecx, dword [ebp - 0x301c]
jmp 0x4914ae
mov edx, dword [ebp - 0x3040]
mov ecx, dword [ebp - 0x3044]
cmp dword [ebp - 0x3034], 0
je 0x4914be
neg ecx
adc edx, 0
neg edx
cmp dword [ebp - 0x303c], 0
jne 0x491149
mov eax, dword [ebp - 0x3024]
test eax, eax
je 0x491522
cmp dword [ebp - 0x3014], 0
je 0x491500
mov esi, dword [ebp - 0x300c]
add esi, 4
mov dword [ebp - 0x3018], edi
mov dword [ebp - 0x300c], esi
mov eax, dword [esi - 4]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x491149
mov eax, dword [ebp - 0x300c]
add eax, 4
mov dword [ebp - 0x3018], edi
mov dword [ebp - 0x300c], eax
mov eax, dword [eax - 4]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x491149
cmp dword [ebp - 0x3010], 0
je 0x491574
cmp dword [ebp - 0x3014], 0
je 0x491554
mov edx, dword [ebp - 0x300c]
add edx, 4
mov dword [ebp - 0x3018], edi
mov dword [ebp - 0x300c], edx
mov eax, dword [edx - 4]
mov word [eax], cx
jmp 0x491149
mov eax, dword [ebp - 0x300c]
add eax, 4
mov dword [ebp - 0x3018], edi
mov dword [ebp - 0x300c], eax
mov eax, dword [eax - 4]
mov word [eax], cx
jmp 0x491149
cmp dword [ebp - 0x3014], 0
mov edx, dword [ebp - 0x3008]
mov dword [ebp - 0x3018], edi
je 0x4915a2
mov esi, dword [ebp - 0x300c]
add esi, 4
mov dword [ebp - 0x300c], esi
mov eax, dword [esi - 4]
mov dword [eax], ecx
jmp 0x49114f
mov eax, dword [ebp - 0x300c]
add eax, 4
mov dword [ebp - 0x300c], eax
mov eax, dword [eax - 4]
mov dword [eax], ecx
jmp 0x49114f
cmp eax, 0x20
je 0x49169f
cmp eax, 0xa
je 0x49169f
cmp eax, 0xd
je 0x49169f
cmp eax, 9
je 0x49169f
xor ecx, ecx
test eax, eax
je 0x491615
cmp eax, 0x20
je 0x49160f
cmp eax, 0xa
je 0x49160f
cmp eax, 0xd
je 0x49160f
cmp eax, 9
je 0x49160f
cmp eax, 0x25
je 0x49160f
add edx, 4
mov dword [ebp + ecx*4 - 0x38a0], eax
inc ecx
mov eax, dword [edx]
test eax, eax
jne 0x4915e5
mov dword [ebp - 0x3008], edx
xor eax, eax
mov dword [ebp + ecx*4 - 0x38a0], 0
test ecx, ecx
jle 0x49164d
mov edx, dword [edi]
test edx, edx
je 0x491693
add edi, 4
mov dword [ebp - 0x3018], edi
cmp dword [ebp + eax*4 - 0x38a0], edx
jne 0x491647
inc eax
cmp eax, ecx
jl 0x491626
mov edx, dword [ebp - 0x3008]
mov eax, dword [edx]
test eax, eax
jne 0x490290
mov eax, dword [ebp - 0x305c]
test eax, eax
je 0x49166a
push eax
call fcn.0045a740
add esp, 4
mov eax, dword [ebp - 0x3050]
test eax, eax
je 0x49167d
push eax
call fcn.0045a740
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x304c]
xor ecx, ebp
pop edi
pop esi
call fcn.005c33e1
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x3030], 1
jmp 0x491647
test eax, eax
je 0x4916c7
cmp eax, 0x20
je 0x4916b7
cmp eax, 0xa
je 0x4916b7
cmp eax, 0xd
je 0x4916b7
cmp eax, 9
jne 0x4916c1
mov eax, dword [edx + 4]
add edx, 4
test eax, eax
jne 0x4916a3
mov dword [ebp - 0x3008], edx
mov eax, dword [edi]
cmp eax, 0x20
je 0x4916dd
cmp eax, 0xa
je 0x4916dd
cmp eax, 0xd
je 0x4916dd
cmp eax, 9
jne 0x4916e2
add edi, 4
jmp 0x4916c7
mov dword [ebp - 0x3018], edi
test eax, eax
je 0x491657
jmp 0x49164d