Function at 0x45a974
Capabilities:
Parse credit card information

Disassembly:
push edi
push esi
push ebp
push ebx
push eax
mov eax, 0x1064
call fcn.004714c0
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.00459590
mov dword [esp + 0x1050], eax
mov dword [esp + 0x1058], edx
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x45a9c8
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x45a9c0
mov esi, eax
mov edx, dword [esp + 0x1050]
or edx, dword [esp + 0x1058]
je 0x45a9e1
mov ebp, 0x63
jmp 0x45a9e3
xor ebp, ebp
cmp dword [0x5ce240], 0
jne 0x45a9fb
mov dword [0x5ce240], 1
call fcn.00469694
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 0x45baa8
mov edx, dword [esp + 0x1048]
lea edi, [edx + ebx]
movzx ecx, byte [ebx + edx + 1]
movzx edx, byte [ebx + edx]
movzx eax, byte [edx + 0x59b0a0]
inc eax
movsx eax, al
mov dword [esp + 0x105c], eax
mov dword [esp + 0x104c], edi
cmp edx, 0x81
jl 0x45aafa
cmp edx, 0xc6
jg 0x45aafa
mov edi, 1
jmp 0x45aafc
xor edi, edi
cmp edx, 0xc9
jl 0x45ab13
cmp edx, 0xfc
jg 0x45ab13
mov eax, 1
jmp 0x45ab15
xor eax, eax
or edi, eax
test ebp, ebp
jne 0x45ad5a
cmp edx, 0x30
jl 0x45ab34
cmp edx, 0x39
jg 0x45ab34
inc ebx
mov ebp, 0x5b
jmp 0x45aaa8
cmp edx, 0x2d
je 0x45ab29
cmp edx, 0x41
jl 0x45ab4e
cmp edx, 0x5a
jg 0x45ab4e
inc ebx
mov ebp, 0x5c
jmp 0x45aaa8
cmp edx, 0x61
jl 0x45ab63
cmp edx, 0x7a
jg 0x45ab63
inc ebx
mov ebp, 0x5d
jmp 0x45aaa8
cmp edx, 0x5f
je 0x45b7b3
cmp edx, 0x2e
je 0x45b7a8
test edi, edi
je 0x45ab8a
add ebx, dword [esp + 0x105c]
mov ebp, 0x60
jmp 0x45aaa8
cmp edx, 0x22
je 0x45b79d
cmp edx, 0x20
je 0x45b792
cmp edx, 9
je 0x45b787
cmp edx, 0x2f
je 0x45b714
cmp edx, 0x2f
je 0x45b6eb
cmp edx, 0x5c
je 0x45b66b
cmp edx, 0x28
je 0x45b5eb
cmp edx, 0x29
je 0x45b56b
cmp edx, 0x2c
je 0x45b4eb
cmp edx, 0x40
je 0x45b46b
cmp edx, 0x24
je 0x45b3eb
cmp edx, 0x23
je 0x45b360
cmp edx, 0x23
je 0x45b2e0
cmp edx, 0x2b
je 0x45b24c
cmp edx, 0x2b
je 0x45b1b8
cmp edx, 0x2b
je 0x45b124
cmp edx, 0x2b
je 0x45b021
cmp edx, 0x2b
je 0x45af1e
cmp edx, 0x3b
jne 0x45ac39
inc ebx
mov esi, ebx
jmp 0x45aaa8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45ac6f
mov eax, edx
cdq
mov ecx, dword [0x8723ec]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45ac76
mov edx, 1
jmp 0x45ac78
xor edx, edx
test edx, edx
jne 0x45acda
mov edx, dword [0x8723ec]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45acb0
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x10
mov dword [edx + ecx*8 + 4], 0
jmp 0x45acda
cmp edx, 2
jne 0x45accb
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1030]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45acda
push 1
push 0x18b14
call fcn.0046c010
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.0046cd58
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.0045baf8
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 0x45aaa8
cmp ebp, 0x16
je 0x45b983
cmp ebp, 0x1f
je 0x45b96f
cmp ebp, 0x20
je 0x45b95b
cmp ebp, 0x5b
je 0x45b7be
cmp ebp, 0x5c
je 0x45b7be
cmp ebp, 0x5d
je 0x45b7be
cmp ebp, 0x5e
je 0x45b7be
cmp ebp, 0x5f
je 0x45b7be
cmp ebp, 0x60
je 0x45b7be
cmp ebp, 0x63
jne 0x45aae3
cmp edx, 0x2a
je 0x45aeb5
cmp edx, 0xd
je 0x45adc8
inc ebx
jmp 0x45aaa8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45adfe
mov eax, edx
cdq
mov ecx, dword [0x8723ec]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45ae05
mov edx, 1
jmp 0x45ae07
xor edx, edx
test edx, edx
jne 0x45ae63
mov edx, dword [0x8723ec]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45ae39
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 0x45ae63
cmp edx, 2
jne 0x45ae54
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1028]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45ae63
push 1
push 0x18b14
call fcn.0046c010
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.0045baf8
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 0x45aaa8
cmp ecx, 0x2f
jne 0x45adbd
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.0046cd58
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.0045baf8
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 0x45aaa8
cmp ecx, 0x3d
jne 0x45ac2c
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45af5b
cdq
mov ecx, dword [0x8723ec]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45af62
mov eax, 1
jmp 0x45af64
xor eax, eax
test eax, eax
jne 0x45afc2
mov eax, dword [0x8723ec]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45af9b
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xf
mov dword [eax + edx*8 + 4], 0
jmp 0x45afc2
cmp eax, 2
jne 0x45afb3
mov eax, dword [edx + 0x34]
fld qword [esp + 0x18]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45afc2
push 1
push 0x18b14
call fcn.0046c010
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x879cd0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45afcb
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045baf8
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 0x45aaa8
cmp ecx, 0x3d
jne 0x45ac23
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45b05e
cdq
mov ecx, dword [0x8723ec]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b065
mov eax, 1
jmp 0x45b067
xor eax, eax
test eax, eax
jne 0x45b0c5
mov eax, dword [0x8723ec]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45b09e
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xe
mov dword [eax + edx*8 + 4], 0
jmp 0x45b0c5
cmp eax, 2
jne 0x45b0b6
mov eax, dword [edx + 0x34]
fld qword [esp + 0x20]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45b0c5
push 1
push 0x18b14
call fcn.0046c010
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x879ccc
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b0ce
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045baf8
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 0x45aaa8
cmp ecx, 0x3d
jne 0x45ac1a
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.0045bbf8
lea esi, [esp + 0x28]
mov edi, 0x879cc8
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b162
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045baf8
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 0x45aaa8
cmp ecx, 0x3d
jne 0x45ac11
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.0045bbf8
lea esi, [esp + 0x28]
mov edi, 0x879cc4
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b1f6
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045baf8
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 0x45aaa8
cmp ecx, 0x2b
jne 0x45ac08
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.0045bbf8
lea esi, [esp + 0x28]
mov edi, 0x879cc0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b28a
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045baf8
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 0x45aaa8
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.0045bbf8
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.0045baf8
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 0x45aaa8
cmp ecx, 0x3d
jne 0x45abf6
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.0045bbf8
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.0045baf8
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 0x45aaa8
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.0045bbf8
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.0045baf8
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 0x45aaa8
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.0045bbf8
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.0045baf8
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 0x45aaa8
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.0045bbf8
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.0045baf8
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 0x45aaa8
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.0045bbf8
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.0045baf8
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 0x45aaa8
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.0045bbf8
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.0045baf8
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 0x45aaa8
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.0045bbf8
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.0045baf8
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 0x45aaa8
cmp ecx, 0x2a
jne 0x45abb7
inc ebx
mov edx, 1
mov dword [esp + 0x1050], edx
xor ecx, ecx
mov dword [esp + 0x1058], ecx
mov ebp, 0x63
jmp 0x45aaa8
cmp ecx, 0x2f
jne 0x45abae
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.0045bbf8
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.0045baf8
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 0x45aaa8
inc ebx
mov ebp, 0x1f
jmp 0x45aaa8
inc ebx
mov ebp, 0x16
jmp 0x45aaa8
inc ebx
mov ebp, 0x5f
jmp 0x45aaa8
inc ebx
mov ebp, 0x5e
jmp 0x45aaa8
cmp edx, 0x81
jl 0x45b7ce
cmp edx, 0xc6
jle 0x45b7de
cmp edx, 0xc9
jl 0x45b7e9
cmp edx, 0xfc
jg 0x45b7e5
mov ecx, 1
jmp 0x45b7eb
xor ecx, ecx
jmp 0x45b7eb
xor ecx, ecx
cmp edx, 0x30
jl 0x45b7f5
cmp edx, 0x39
jle 0x45b81c
cmp edx, 0x41
jl 0x45b7ff
cmp edx, 0x5a
jle 0x45b81c
cmp edx, 0x61
jl 0x45b809
cmp edx, 0x7a
jle 0x45b81c
cmp edx, 0x5f
je 0x45b81c
cmp edx, 0x2e
je 0x45b81c
cmp edx, 0x2f
je 0x45b81c
test ecx, ecx
je 0x45b828
add ebx, dword [esp + 0x105c]
jmp 0x45aaa8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x105c], edx
test edx, edx
jl 0x45b85e
mov eax, edx
cdq
mov ecx, dword [0x8723ec]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b865
mov edx, 1
jmp 0x45b867
xor edx, edx
test edx, edx
jne 0x45b8c9
mov edx, dword [0x8723ec]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45b89f
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x105c]
mov dword [edx + ecx*8], 0x20
mov dword [edx + ecx*8 + 4], 0
jmp 0x45b8c9
cmp edx, 2
jne 0x45b8ba
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1040]
mov ecx, dword [esp + 0x105c]
fstp qword [edx + ecx*8]
jmp 0x45b8c9
push 1
push 0x18b14
call fcn.0046c010
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.0046cd58
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.0045baf8
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 + 0x59b0a0]
inc eax
movsx edi, al
mov dword [esp + 0x105c], edi
jmp 0x45aae3
cmp edx, 9
je 0x45b969
mov esi, ebx
xor ebp, ebp
jmp 0x45aae3
inc ebx
jmp 0x45aaa8
cmp edx, 0x20
je 0x45b97d
mov esi, ebx
xor ebp, ebp
jmp 0x45aae3
inc ebx
jmp 0x45aaa8
cmp edx, 0x22
je 0x45b993
cmp edx, 0xd
je 0x45b993
inc ebx
jmp 0x45aaa8
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45b9c9
mov eax, edx
cdq
mov ecx, dword [0x8723ec]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b9d0
mov edx, 1
jmp 0x45b9d2
xor edx, edx
test edx, edx
jne 0x45ba34
mov edx, dword [0x8723ec]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45ba0a
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x1f
mov dword [edx + ecx*8 + 4], 0
jmp 0x45ba34
cmp edx, 2
jne 0x45ba25
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1038]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45ba34
push 1
push 0x18b14
call fcn.0046c010
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.0046cd58
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.0045baf8
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 0x45aaa8
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.0045bbf8
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1060]
add esp, 0x1068
pop ebx
pop ebp
pop esi
pop edi
ret