Function at 0x45abbc
Capabilities:
Parse credit card information

Disassembly:
push edi
push esi
push ebp
push ebx
push eax
mov eax, 0x1064
call fcn.00471d00
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.00459684
mov dword [esp + 0x1050], eax
mov dword [esp + 0x1058], edx
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x45ac10
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x45ac08
mov esi, eax
mov edx, dword [esp + 0x1050]
or edx, dword [esp + 0x1058]
je 0x45ac29
mov ebp, 0x63
jmp 0x45ac2b
xor ebp, ebp
cmp dword [0x5ce320], 0
jne 0x45ac43
mov dword [0x5ce320], 1
call fcn.00469c60
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 0x45bcf0
mov edx, dword [esp + 0x1048]
lea edi, [edx + ebx]
movzx ecx, byte [ebx + edx + 1]
movzx edx, byte [ebx + edx]
movzx eax, byte [edx + 0x59b4c0]
inc eax
movsx eax, al
mov dword [esp + 0x105c], eax
mov dword [esp + 0x104c], edi
cmp edx, 0x81
jl 0x45ad42
cmp edx, 0x9f
jg 0x45ad42
mov edi, 1
jmp 0x45ad44
xor edi, edi
cmp edx, 0xe0
jl 0x45ad5b
cmp edx, 0xfc
jg 0x45ad5b
mov eax, 1
jmp 0x45ad5d
xor eax, eax
or edi, eax
test ebp, ebp
jne 0x45afa2
cmp edx, 0x30
jl 0x45ad7c
cmp edx, 0x39
jg 0x45ad7c
inc ebx
mov ebp, 0x5b
jmp 0x45acf0
cmp edx, 0x2d
je 0x45ad71
cmp edx, 0x41
jl 0x45ad96
cmp edx, 0x5a
jg 0x45ad96
inc ebx
mov ebp, 0x5c
jmp 0x45acf0
cmp edx, 0x61
jl 0x45adab
cmp edx, 0x7a
jg 0x45adab
inc ebx
mov ebp, 0x5d
jmp 0x45acf0
cmp edx, 0x5f
je 0x45b9fb
cmp edx, 0x2e
je 0x45b9f0
test edi, edi
je 0x45add2
add ebx, dword [esp + 0x105c]
mov ebp, 0x60
jmp 0x45acf0
cmp edx, 0x22
je 0x45b9e5
cmp edx, 0x20
je 0x45b9da
cmp edx, 9
je 0x45b9cf
cmp edx, 0x2f
je 0x45b95c
cmp edx, 0x2f
je 0x45b933
cmp edx, 0x5c
je 0x45b8b3
cmp edx, 0x28
je 0x45b833
cmp edx, 0x29
je 0x45b7b3
cmp edx, 0x2c
je 0x45b733
cmp edx, 0x40
je 0x45b6b3
cmp edx, 0x24
je 0x45b633
cmp edx, 0x23
je 0x45b5a8
cmp edx, 0x23
je 0x45b528
cmp edx, 0x2b
je 0x45b494
cmp edx, 0x2b
je 0x45b400
cmp edx, 0x2b
je 0x45b36c
cmp edx, 0x2b
je 0x45b269
cmp edx, 0x2b
je 0x45b166
cmp edx, 0x3b
jne 0x45ae81
inc ebx
mov esi, ebx
jmp 0x45acf0
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45aeb7
mov eax, edx
cdq
mov ecx, dword [0x834444]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45aebe
mov edx, 1
jmp 0x45aec0
xor edx, edx
test edx, edx
jne 0x45af22
mov edx, dword [0x834444]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45aef8
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x10
mov dword [edx + ecx*8 + 4], 0
jmp 0x45af22
cmp edx, 2
jne 0x45af13
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1030]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45af22
push 1
push 0x18b14
call fcn.0046c74c
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.0046d45c
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.0045bd40
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 0x45acf0
cmp ebp, 0x16
je 0x45bbcb
cmp ebp, 0x1f
je 0x45bbb7
cmp ebp, 0x20
je 0x45bba3
cmp ebp, 0x5b
je 0x45ba06
cmp ebp, 0x5c
je 0x45ba06
cmp ebp, 0x5d
je 0x45ba06
cmp ebp, 0x5e
je 0x45ba06
cmp ebp, 0x5f
je 0x45ba06
cmp ebp, 0x60
je 0x45ba06
cmp ebp, 0x63
jne 0x45ad2b
cmp edx, 0x2a
je 0x45b0fd
cmp edx, 0xd
je 0x45b010
inc ebx
jmp 0x45acf0
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45b046
mov eax, edx
cdq
mov ecx, dword [0x834444]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45b04d
mov edx, 1
jmp 0x45b04f
xor edx, edx
test edx, edx
jne 0x45b0ab
mov edx, dword [0x834444]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45b081
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 0x45b0ab
cmp edx, 2
jne 0x45b09c
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1028]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45b0ab
push 1
push 0x18b14
call fcn.0046c74c
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.0045bd40
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 0x45acf0
cmp ecx, 0x2f
jne 0x45b005
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.0046d45c
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.0045bd40
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 0x45acf0
cmp ecx, 0x3d
jne 0x45ae74
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45b1a3
cdq
mov ecx, dword [0x834444]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b1aa
mov eax, 1
jmp 0x45b1ac
xor eax, eax
test eax, eax
jne 0x45b20a
mov eax, dword [0x834444]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45b1e3
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xf
mov dword [eax + edx*8 + 4], 0
jmp 0x45b20a
cmp eax, 2
jne 0x45b1fb
mov eax, dword [edx + 0x34]
fld qword [esp + 0x18]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45b20a
push 1
push 0x18b14
call fcn.0046c74c
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x83bf50
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b213
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd40
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 0x45acf0
cmp ecx, 0x3d
jne 0x45ae6b
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45b2a6
cdq
mov ecx, dword [0x834444]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b2ad
mov eax, 1
jmp 0x45b2af
xor eax, eax
test eax, eax
jne 0x45b30d
mov eax, dword [0x834444]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45b2e6
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xe
mov dword [eax + edx*8 + 4], 0
jmp 0x45b30d
cmp eax, 2
jne 0x45b2fe
mov eax, dword [edx + 0x34]
fld qword [esp + 0x20]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45b30d
push 1
push 0x18b14
call fcn.0046c74c
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x83bf4c
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b316
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd40
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 0x45acf0
cmp ecx, 0x3d
jne 0x45ae62
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.0045be40
lea esi, [esp + 0x28]
mov edi, 0x83bf48
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b3aa
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd40
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 0x45acf0
cmp ecx, 0x3d
jne 0x45ae59
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.0045be40
lea esi, [esp + 0x28]
mov edi, 0x83bf44
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b43e
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd40
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 0x45acf0
cmp ecx, 0x2b
jne 0x45ae50
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.0045be40
lea esi, [esp + 0x28]
mov edi, 0x83bf40
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b4d2
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd40
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 0x45acf0
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.0045be40
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.0045bd40
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 0x45acf0
cmp ecx, 0x3d
jne 0x45ae3e
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.0045be40
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.0045bd40
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 0x45acf0
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.0045be40
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.0045bd40
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 0x45acf0
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.0045be40
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.0045bd40
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 0x45acf0
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.0045be40
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.0045bd40
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 0x45acf0
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.0045be40
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.0045bd40
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 0x45acf0
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.0045be40
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.0045bd40
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 0x45acf0
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.0045be40
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.0045bd40
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 0x45acf0
cmp ecx, 0x2a
jne 0x45adff
inc ebx
mov edx, 1
mov dword [esp + 0x1050], edx
xor ecx, ecx
mov dword [esp + 0x1058], ecx
mov ebp, 0x63
jmp 0x45acf0
cmp ecx, 0x2f
jne 0x45adf6
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.0045be40
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.0045bd40
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 0x45acf0
inc ebx
mov ebp, 0x1f
jmp 0x45acf0
inc ebx
mov ebp, 0x16
jmp 0x45acf0
inc ebx
mov ebp, 0x5f
jmp 0x45acf0
inc ebx
mov ebp, 0x5e
jmp 0x45acf0
cmp edx, 0x81
jl 0x45ba16
cmp edx, 0x9f
jle 0x45ba26
cmp edx, 0xe0
jl 0x45ba31
cmp edx, 0xfc
jg 0x45ba2d
mov ecx, 1
jmp 0x45ba33
xor ecx, ecx
jmp 0x45ba33
xor ecx, ecx
cmp edx, 0x30
jl 0x45ba3d
cmp edx, 0x39
jle 0x45ba64
cmp edx, 0x41
jl 0x45ba47
cmp edx, 0x5a
jle 0x45ba64
cmp edx, 0x61
jl 0x45ba51
cmp edx, 0x7a
jle 0x45ba64
cmp edx, 0x5f
je 0x45ba64
cmp edx, 0x2e
je 0x45ba64
cmp edx, 0x2f
je 0x45ba64
test ecx, ecx
je 0x45ba70
add ebx, dword [esp + 0x105c]
jmp 0x45acf0
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x105c], edx
test edx, edx
jl 0x45baa6
mov eax, edx
cdq
mov ecx, dword [0x834444]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45baad
mov edx, 1
jmp 0x45baaf
xor edx, edx
test edx, edx
jne 0x45bb11
mov edx, dword [0x834444]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45bae7
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x105c]
mov dword [edx + ecx*8], 0x20
mov dword [edx + ecx*8 + 4], 0
jmp 0x45bb11
cmp edx, 2
jne 0x45bb02
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1040]
mov ecx, dword [esp + 0x105c]
fstp qword [edx + ecx*8]
jmp 0x45bb11
push 1
push 0x18b14
call fcn.0046c74c
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.0046d45c
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.0045bd40
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 + 0x59b4c0]
inc eax
movsx edi, al
mov dword [esp + 0x105c], edi
jmp 0x45ad2b
cmp edx, 9
je 0x45bbb1
mov esi, ebx
xor ebp, ebp
jmp 0x45ad2b
inc ebx
jmp 0x45acf0
cmp edx, 0x20
je 0x45bbc5
mov esi, ebx
xor ebp, ebp
jmp 0x45ad2b
inc ebx
jmp 0x45acf0
cmp edx, 0x22
je 0x45bbdb
cmp edx, 0xd
je 0x45bbdb
inc ebx
jmp 0x45acf0
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45bc11
mov eax, edx
cdq
mov ecx, dword [0x834444]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45bc18
mov edx, 1
jmp 0x45bc1a
xor edx, edx
test edx, edx
jne 0x45bc7c
mov edx, dword [0x834444]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45bc52
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x1f
mov dword [edx + ecx*8 + 4], 0
jmp 0x45bc7c
cmp edx, 2
jne 0x45bc6d
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1038]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45bc7c
push 1
push 0x18b14
call fcn.0046c74c
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.0046d45c
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.0045bd40
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 0x45acf0
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.0045be40
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1060]
add esp, 0x1068
pop ebx
pop ebp
pop esi
pop edi
ret