Function at 0x45a874
Capabilities:
Parse credit card information

Disassembly:
push edi
push esi
push ebp
push ebx
push eax
mov eax, 0x1064
call fcn.004712e0
mov eax, dword [esp + 0x1064]
mov edi, eax
mov eax, dword [esp + 0x1090]
cdq
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x1094]
call fcn.00459490
mov dword [esp + 0x1050], eax
mov dword [esp + 0x1058], edx
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x45a8c8
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x45a8c0
mov esi, eax
mov edx, dword [esp + 0x1050]
or edx, dword [esp + 0x1058]
je 0x45a8e1
mov ebp, 0x63
jmp 0x45a8e3
xor ebp, ebp
cmp dword [0x5ce220], 0
jne 0x45a8fb
mov dword [0x5ce220], 1
call fcn.004694b4
xor ebx, ebx
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x1064], ecx
xor edx, edx
mov dword [esp + 0x1060], edx
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
mov ecx, 0x20
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
mov ecx, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
mov ecx, 0x10
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
mov ecx, 0xf
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
mov ecx, 0xe
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
mov dword [esp + 0x1054], esi
mov dword [esp + 0x1048], edi
fstp qword [esp + 0x20]
fstp qword [esp + 0x18]
fstp qword [esp + 0x1030]
fstp qword [esp + 0x1038]
fstp qword [esp + 0x1040]
fstp qword [esp + 0x1028]
mov esi, eax
mov edx, dword [esp + 0x1054]
cmp ebx, edx
jge 0x45b9a8
mov edx, dword [esp + 0x1048]
lea edi, [edx + ebx]
movzx ecx, byte [ebx + edx + 1]
movzx edx, byte [ebx + edx]
movzx eax, byte [edx + 0x59b0c0]
inc eax
movsx eax, al
mov dword [esp + 0x105c], eax
mov dword [esp + 0x104c], edi
cmp edx, 0x81
jl 0x45a9fa
cmp edx, 0xc6
jg 0x45a9fa
mov edi, 1
jmp 0x45a9fc
xor edi, edi
cmp edx, 0xc9
jl 0x45aa13
cmp edx, 0xfc
jg 0x45aa13
mov eax, 1
jmp 0x45aa15
xor eax, eax
or edi, eax
test ebp, ebp
jne 0x45ac5a
cmp edx, 0x30
jl 0x45aa34
cmp edx, 0x39
jg 0x45aa34
inc ebx
mov ebp, 0x5b
jmp 0x45a9a8
cmp edx, 0x2d
je 0x45aa29
cmp edx, 0x41
jl 0x45aa4e
cmp edx, 0x5a
jg 0x45aa4e
inc ebx
mov ebp, 0x5c
jmp 0x45a9a8
cmp edx, 0x61
jl 0x45aa63
cmp edx, 0x7a
jg 0x45aa63
inc ebx
mov ebp, 0x5d
jmp 0x45a9a8
cmp edx, 0x5f
je 0x45b6b3
cmp edx, 0x2e
je 0x45b6a8
test edi, edi
je 0x45aa8a
add ebx, dword [esp + 0x105c]
mov ebp, 0x60
jmp 0x45a9a8
cmp edx, 0x22
je 0x45b69d
cmp edx, 0x20
je 0x45b692
cmp edx, 9
je 0x45b687
cmp edx, 0x2f
je 0x45b614
cmp edx, 0x2f
je 0x45b5eb
cmp edx, 0x5c
je 0x45b56b
cmp edx, 0x28
je 0x45b4eb
cmp edx, 0x29
je 0x45b46b
cmp edx, 0x2c
je 0x45b3eb
cmp edx, 0x40
je 0x45b36b
cmp edx, 0x24
je 0x45b2eb
cmp edx, 0x23
je 0x45b260
cmp edx, 0x23
je 0x45b1e0
cmp edx, 0x2b
je 0x45b14c
cmp edx, 0x2b
je 0x45b0b8
cmp edx, 0x2b
je 0x45b024
cmp edx, 0x2b
je 0x45af21
cmp edx, 0x2b
je 0x45ae1e
cmp edx, 0x3b
jne 0x45ab39
inc ebx
mov esi, ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45ab6f
mov eax, edx
cdq
mov ecx, dword [0x8723c8]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45ab76
mov edx, 1
jmp 0x45ab78
xor edx, edx
test edx, edx
jne 0x45abda
mov edx, dword [0x8723c8]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45abb0
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x10
mov dword [edx + ecx*8 + 4], 0
jmp 0x45abda
cmp edx, 2
jne 0x45abcb
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1030]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45abda
push 1
push 0x18b14
call fcn.0046be30
add esp, 8
mov edx, ebx
sub edx, esi
mov dword [esp + 0x104c], edx
lea ecx, [edx + 1]
add esi, dword [esp + 0x1048]
lea edi, [esp + 0x28]
push ecx
push esi
push edi
call fcn.0046cb78
add esp, 0xc
mov esi, dword [esp + 0x104c]
mov byte [esp + esi + 0x29], 0
mov edx, dword [esp + 0x1064]
mov edi, dword [esp + 0x1080]
add edx, edi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
add ebx, dword [esp + 0x105c]
mov esi, ebx
jmp 0x45a9a8
cmp ebp, 0x16
je 0x45b883
cmp ebp, 0x1f
je 0x45b86f
cmp ebp, 0x20
je 0x45b85b
cmp ebp, 0x5b
je 0x45b6be
cmp ebp, 0x5c
je 0x45b6be
cmp ebp, 0x5d
je 0x45b6be
cmp ebp, 0x5e
je 0x45b6be
cmp ebp, 0x5f
je 0x45b6be
cmp ebp, 0x60
je 0x45b6be
cmp ebp, 0x63
jne 0x45a9e3
cmp edx, 0x2a
je 0x45adb5
cmp edx, 0xd
je 0x45acc8
inc ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45acfe
mov eax, edx
cdq
mov ecx, dword [0x8723c8]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45ad05
mov edx, 1
jmp 0x45ad07
xor edx, edx
test edx, edx
jne 0x45ad63
mov edx, dword [0x8723c8]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45ad39
mov ecx, dword [ecx + 0x30]
xor edx, edx
mov edi, dword [esp + 0x104c]
mov dword [ecx + edi*8], edx
mov dword [ecx + edi*8 + 4], edx
jmp 0x45ad63
cmp edx, 2
jne 0x45ad54
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1028]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45ad63
push 1
push 0x18b14
call fcn.0046be30
add esp, 8
mov byte [esp + 0x28], 0xd
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov edi, dword [esp + 0x1080]
add edx, edi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov edx, dword [esp + 0x1064]
add edx, 1
mov dword [esp + 0x1064], edx
mov ecx, dword [esp + 0x1060]
adc ecx, 0
mov dword [esp + 0x1060], ecx
inc ebx
jmp 0x45a9a8
cmp ecx, 0x2f
jne 0x45acbd
mov ebp, ebx
sub ebp, esi
lea edx, [ebp + 2]
add esi, dword [esp + 0x1048]
lea ecx, [esp + 0x28]
push edx
push esi
push ecx
call fcn.0046cb78
add esp, 0xc
mov byte [esp + ebp + 0x2a], 0
mov edx, dword [esp + 0x1064]
mov ebp, dword [esp + 0x1080]
add edx, ebp
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
add ebx, 2
mov esi, ebx
xor ebp, ebp
xor edx, edx
mov dword [esp + 0x1050], edx
xor ecx, ecx
mov dword [esp + 0x1058], ecx
jmp 0x45a9a8
cmp ecx, 0x3d
jne 0x45ab2c
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45ae5b
cdq
mov ecx, dword [0x8723c8]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45ae62
mov eax, 1
jmp 0x45ae64
xor eax, eax
test eax, eax
jne 0x45aec2
mov eax, dword [0x8723c8]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45ae9b
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xf
mov dword [eax + edx*8 + 4], 0
jmp 0x45aec2
cmp eax, 2
jne 0x45aeb3
mov eax, dword [edx + 0x34]
fld qword [esp + 0x18]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45aec2
push 1
push 0x18b14
call fcn.0046be30
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x879cb0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45aecb
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
add ebx, 2
mov esi, ebx
jmp 0x45a9a8
cmp ecx, 0x3d
jne 0x45ab23
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45af5e
cdq
mov ecx, dword [0x8723c8]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45af65
mov eax, 1
jmp 0x45af67
xor eax, eax
test eax, eax
jne 0x45afc5
mov eax, dword [0x8723c8]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45af9e
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xe
mov dword [eax + edx*8 + 4], 0
jmp 0x45afc5
cmp eax, 2
jne 0x45afb6
mov eax, dword [edx + 0x34]
fld qword [esp + 0x20]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45afc5
push 1
push 0x18b14
call fcn.0046be30
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x879cac
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45afce
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
add ebx, 2
mov esi, ebx
jmp 0x45a9a8
cmp ecx, 0x3d
jne 0x45ab1a
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0xd
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
lea esi, [esp + 0x28]
mov edi, 0x879ca8
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b062
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
add ebx, 2
mov esi, ebx
jmp 0x45a9a8
cmp ecx, 0x3d
jne 0x45ab11
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0xc
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
lea esi, [esp + 0x28]
mov edi, 0x879ca4
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b0f6
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
add ebx, 2
mov esi, ebx
jmp 0x45a9a8
cmp ecx, 0x2b
jne 0x45ab08
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0xb
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
lea esi, [esp + 0x28]
mov edi, 0x879ca0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b18a
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
add ebx, 2
mov esi, ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0x39
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0x23
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
inc ebx
mov esi, ebx
jmp 0x45a9a8
cmp ecx, 0x3d
jne 0x45aaf6
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0x39
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0x23
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
add ebx, 2
mov esi, ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0x38
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0x24
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
inc ebx
mov esi, ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0x37
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0x40
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
inc ebx
mov esi, ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0x36
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0x2c
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
inc ebx
mov esi, ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0x35
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0x29
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
inc ebx
mov esi, ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0x34
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0x28
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
inc ebx
mov esi, ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 8], 0x33
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0x5c
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
inc ebx
mov esi, ebx
jmp 0x45a9a8
cmp ecx, 0x2a
jne 0x45aab7
inc ebx
mov edx, 1
mov dword [esp + 0x1050], edx
xor ecx, ecx
mov dword [esp + 0x1058], ecx
mov ebp, 0x63
jmp 0x45a9a8
cmp ecx, 0x2f
jne 0x45aaae
mov edx, dword [esp + 0x1088]
mov ecx, dword [esp + 0x1064]
add edx, ecx
xor ebx, ebx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x108c]
call fcn.0045baf8
mov byte [esp + 0x28], 0xd
mov byte [esp + 0x29], 0
mov edx, dword [esp + 0x1080]
mov ebx, dword [esp + 0x1064]
add edx, ebx
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, ebx
add eax, 1
mov edx, dword [esp + 0x1060]
adc edx, 0
add esp, 0x1068
pop ebx
pop ebp
pop esi
pop edi
ret
inc ebx
mov ebp, 0x20
jmp 0x45a9a8
inc ebx
mov ebp, 0x1f
jmp 0x45a9a8
inc ebx
mov ebp, 0x16
jmp 0x45a9a8
inc ebx
mov ebp, 0x5f
jmp 0x45a9a8
inc ebx
mov ebp, 0x5e
jmp 0x45a9a8
cmp edx, 0x81
jl 0x45b6ce
cmp edx, 0xc6
jle 0x45b6de
cmp edx, 0xc9
jl 0x45b6e9
cmp edx, 0xfc
jg 0x45b6e5
mov ecx, 1
jmp 0x45b6eb
xor ecx, ecx
jmp 0x45b6eb
xor ecx, ecx
cmp edx, 0x30
jl 0x45b6f5
cmp edx, 0x39
jle 0x45b71c
cmp edx, 0x41
jl 0x45b6ff
cmp edx, 0x5a
jle 0x45b71c
cmp edx, 0x61
jl 0x45b709
cmp edx, 0x7a
jle 0x45b71c
cmp edx, 0x5f
je 0x45b71c
cmp edx, 0x2e
je 0x45b71c
cmp edx, 0x2f
je 0x45b71c
test ecx, ecx
je 0x45b728
add ebx, dword [esp + 0x105c]
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x105c], edx
test edx, edx
jl 0x45b75e
mov eax, edx
cdq
mov ecx, dword [0x8723c8]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b765
mov edx, 1
jmp 0x45b767
xor edx, edx
test edx, edx
jne 0x45b7c9
mov edx, dword [0x8723c8]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45b79f
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x105c]
mov dword [edx + ecx*8], 0x20
mov dword [edx + ecx*8 + 4], 0
jmp 0x45b7c9
cmp edx, 2
jne 0x45b7ba
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1040]
mov ecx, dword [esp + 0x105c]
fstp qword [edx + ecx*8]
jmp 0x45b7c9
push 1
push 0x18b14
call fcn.0046be30
add esp, 8
mov ebp, ebx
sub ebp, esi
add esi, dword [esp + 0x1048]
lea edx, [esp + 0x28]
push ebp
push esi
push edx
call fcn.0046cb78
add esp, 0xc
mov byte [esp + ebp + 0x28], 0
mov edx, dword [esp + 0x1064]
mov ebp, dword [esp + 0x1080]
add edx, ebp
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov ebp, dword [esp + 0x1064]
add ebp, 1
mov dword [esp + 0x1064], ebp
mov esi, dword [esp + 0x1060]
adc esi, 0
mov dword [esp + 0x1060], esi
mov esi, ebx
xor ebp, ebp
mov ecx, dword [esp + 0x104c]
movzx ecx, byte [ecx + 1]
mov edx, dword [esp + 0x1048]
movzx edx, byte [ebx + edx]
movzx eax, byte [edx + 0x59b0c0]
inc eax
movsx edi, al
mov dword [esp + 0x105c], edi
jmp 0x45a9e3
cmp edx, 9
je 0x45b869
mov esi, ebx
xor ebp, ebp
jmp 0x45a9e3
inc ebx
jmp 0x45a9a8
cmp edx, 0x20
je 0x45b87d
mov esi, ebx
xor ebp, ebp
jmp 0x45a9e3
inc ebx
jmp 0x45a9a8
cmp edx, 0x22
je 0x45b893
cmp edx, 0xd
je 0x45b893
inc ebx
jmp 0x45a9a8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45b8c9
mov eax, edx
cdq
mov ecx, dword [0x8723c8]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b8d0
mov edx, 1
jmp 0x45b8d2
xor edx, edx
test edx, edx
jne 0x45b934
mov edx, dword [0x8723c8]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45b90a
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x1f
mov dword [edx + ecx*8 + 4], 0
jmp 0x45b934
cmp edx, 2
jne 0x45b925
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1038]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45b934
push 1
push 0x18b14
call fcn.0046be30
add esp, 8
mov ebp, ebx
sub ebp, esi
lea edx, [ebp + 1]
add esi, dword [esp + 0x1048]
lea ecx, [esp + 0x28]
push edx
push esi
push ecx
call fcn.0046cb78
add esp, 0xc
mov byte [esp + ebp + 0x29], 0
mov edx, dword [esp + 0x1064]
mov ebp, dword [esp + 0x1080]
add edx, ebp
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045b9f8
mov eax, dword [esp + 0x1064]
add eax, 1
mov dword [esp + 0x1064], eax
mov edx, dword [esp + 0x1060]
adc edx, 0
mov dword [esp + 0x1060], edx
add ebx, dword [esp + 0x105c]
mov esi, ebx
xor ebp, ebp
jmp 0x45a9a8
mov ecx, dword [esp + 0x1050]
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0x1058]
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x1094]
mov edx, dword [esp + 0x1090]
call fcn.0045baf8
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1060]
add esp, 0x1068
pop ebx
pop ebp
pop esi
pop edi
ret