Function at 0x45abe8
Capabilities:
Parse credit card information

Disassembly:
push edi
push esi
push ebp
push ebx
push eax
mov eax, 0x1064
call fcn.00472450
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.004597d4
mov dword [esp + 0x1050], eax
mov dword [esp + 0x1058], edx
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x45ac3c
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x45ac34
mov esi, eax
mov edx, dword [esp + 0x1050]
or edx, dword [esp + 0x1058]
je 0x45ac55
mov ebp, 0x63
jmp 0x45ac57
xor ebp, ebp
cmp dword [0x5cf720], 0
jne 0x45ac6f
mov dword [0x5cf720], 1
call fcn.0046a784
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 0x45bd1c
mov edx, dword [esp + 0x1048]
lea edi, [edx + ebx]
movzx ecx, byte [ebx + edx + 1]
movzx edx, byte [ebx + edx]
movzx eax, byte [edx + 0x59c0c0]
inc eax
movsx eax, al
mov dword [esp + 0x105c], eax
mov dword [esp + 0x104c], edi
cmp edx, 0x81
jl 0x45ad6e
cmp edx, 0x9f
jg 0x45ad6e
mov edi, 1
jmp 0x45ad70
xor edi, edi
cmp edx, 0xe0
jl 0x45ad87
cmp edx, 0xfc
jg 0x45ad87
mov eax, 1
jmp 0x45ad89
xor eax, eax
or edi, eax
test ebp, ebp
jne 0x45afce
cmp edx, 0x30
jl 0x45ada8
cmp edx, 0x39
jg 0x45ada8
inc ebx
mov ebp, 0x5b
jmp 0x45ad1c
cmp edx, 0x2d
je 0x45ad9d
cmp edx, 0x41
jl 0x45adc2
cmp edx, 0x5a
jg 0x45adc2
inc ebx
mov ebp, 0x5c
jmp 0x45ad1c
cmp edx, 0x61
jl 0x45add7
cmp edx, 0x7a
jg 0x45add7
inc ebx
mov ebp, 0x5d
jmp 0x45ad1c
cmp edx, 0x5f
je 0x45ba27
cmp edx, 0x2e
je 0x45ba1c
test edi, edi
je 0x45adfe
add ebx, dword [esp + 0x105c]
mov ebp, 0x60
jmp 0x45ad1c
cmp edx, 0x22
je 0x45ba11
cmp edx, 0x20
je 0x45ba06
cmp edx, 9
je 0x45b9fb
cmp edx, 0x2f
je 0x45b988
cmp edx, 0x2f
je 0x45b95f
cmp edx, 0x5c
je 0x45b8df
cmp edx, 0x28
je 0x45b85f
cmp edx, 0x29
je 0x45b7df
cmp edx, 0x2c
je 0x45b75f
cmp edx, 0x40
je 0x45b6df
cmp edx, 0x24
je 0x45b65f
cmp edx, 0x23
je 0x45b5d4
cmp edx, 0x23
je 0x45b554
cmp edx, 0x2b
je 0x45b4c0
cmp edx, 0x2b
je 0x45b42c
cmp edx, 0x2b
je 0x45b398
cmp edx, 0x2b
je 0x45b295
cmp edx, 0x2b
je 0x45b192
cmp edx, 0x3b
jne 0x45aead
inc ebx
mov esi, ebx
jmp 0x45ad1c
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45aee3
mov eax, edx
cdq
mov ecx, dword [0x873ae4]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45aeea
mov edx, 1
jmp 0x45aeec
xor edx, edx
test edx, edx
jne 0x45af4e
mov edx, dword [0x873ae4]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45af24
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x10
mov dword [edx + ecx*8 + 4], 0
jmp 0x45af4e
cmp edx, 2
jne 0x45af3f
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1030]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45af4e
push 1
push 0x18b14
call fcn.0046cfa0
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.0046dce8
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.0045bd6c
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 0x45ad1c
cmp ebp, 0x16
je 0x45bbf7
cmp ebp, 0x1f
je 0x45bbe3
cmp ebp, 0x20
je 0x45bbcf
cmp ebp, 0x5b
je 0x45ba32
cmp ebp, 0x5c
je 0x45ba32
cmp ebp, 0x5d
je 0x45ba32
cmp ebp, 0x5e
je 0x45ba32
cmp ebp, 0x5f
je 0x45ba32
cmp ebp, 0x60
je 0x45ba32
cmp ebp, 0x63
jne 0x45ad57
cmp edx, 0x2a
je 0x45b129
cmp edx, 0xd
je 0x45b03c
inc ebx
jmp 0x45ad1c
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45b072
mov eax, edx
cdq
mov ecx, dword [0x873ae4]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45b079
mov edx, 1
jmp 0x45b07b
xor edx, edx
test edx, edx
jne 0x45b0d7
mov edx, dword [0x873ae4]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45b0ad
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 0x45b0d7
cmp edx, 2
jne 0x45b0c8
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1028]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45b0d7
push 1
push 0x18b14
call fcn.0046cfa0
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.0045bd6c
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 0x45ad1c
cmp ecx, 0x2f
jne 0x45b031
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.0046dce8
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.0045bd6c
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 0x45ad1c
cmp ecx, 0x3d
jne 0x45aea0
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45b1cf
cdq
mov ecx, dword [0x873ae4]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b1d6
mov eax, 1
jmp 0x45b1d8
xor eax, eax
test eax, eax
jne 0x45b236
mov eax, dword [0x873ae4]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45b20f
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xf
mov dword [eax + edx*8 + 4], 0
jmp 0x45b236
cmp eax, 2
jne 0x45b227
mov eax, dword [edx + 0x34]
fld qword [esp + 0x18]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45b236
push 1
push 0x18b14
call fcn.0046cfa0
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x87aff0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b23f
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd6c
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 0x45ad1c
cmp ecx, 0x3d
jne 0x45ae97
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45b2d2
cdq
mov ecx, dword [0x873ae4]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b2d9
mov eax, 1
jmp 0x45b2db
xor eax, eax
test eax, eax
jne 0x45b339
mov eax, dword [0x873ae4]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45b312
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xe
mov dword [eax + edx*8 + 4], 0
jmp 0x45b339
cmp eax, 2
jne 0x45b32a
mov eax, dword [edx + 0x34]
fld qword [esp + 0x20]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45b339
push 1
push 0x18b14
call fcn.0046cfa0
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x87afec
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b342
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd6c
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 0x45ad1c
cmp ecx, 0x3d
jne 0x45ae8e
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.0045be6c
lea esi, [esp + 0x28]
mov edi, 0x87afe8
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b3d6
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd6c
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 0x45ad1c
cmp ecx, 0x3d
jne 0x45ae85
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.0045be6c
lea esi, [esp + 0x28]
mov edi, 0x87afe4
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b46a
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd6c
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 0x45ad1c
cmp ecx, 0x2b
jne 0x45ae7c
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.0045be6c
lea esi, [esp + 0x28]
mov edi, 0x87afe0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b4fe
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bd6c
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 0x45ad1c
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.0045be6c
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.0045bd6c
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 0x45ad1c
cmp ecx, 0x3d
jne 0x45ae6a
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.0045be6c
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.0045bd6c
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 0x45ad1c
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.0045be6c
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.0045bd6c
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 0x45ad1c
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.0045be6c
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.0045bd6c
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 0x45ad1c
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.0045be6c
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.0045bd6c
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 0x45ad1c
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.0045be6c
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.0045bd6c
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 0x45ad1c
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.0045be6c
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.0045bd6c
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 0x45ad1c
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.0045be6c
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.0045bd6c
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 0x45ad1c
cmp ecx, 0x2a
jne 0x45ae2b
inc ebx
mov edx, 1
mov dword [esp + 0x1050], edx
xor ecx, ecx
mov dword [esp + 0x1058], ecx
mov ebp, 0x63
jmp 0x45ad1c
cmp ecx, 0x2f
jne 0x45ae22
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.0045be6c
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.0045bd6c
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 0x45ad1c
inc ebx
mov ebp, 0x1f
jmp 0x45ad1c
inc ebx
mov ebp, 0x16
jmp 0x45ad1c
inc ebx
mov ebp, 0x5f
jmp 0x45ad1c
inc ebx
mov ebp, 0x5e
jmp 0x45ad1c
cmp edx, 0x81
jl 0x45ba42
cmp edx, 0x9f
jle 0x45ba52
cmp edx, 0xe0
jl 0x45ba5d
cmp edx, 0xfc
jg 0x45ba59
mov ecx, 1
jmp 0x45ba5f
xor ecx, ecx
jmp 0x45ba5f
xor ecx, ecx
cmp edx, 0x30
jl 0x45ba69
cmp edx, 0x39
jle 0x45ba90
cmp edx, 0x41
jl 0x45ba73
cmp edx, 0x5a
jle 0x45ba90
cmp edx, 0x61
jl 0x45ba7d
cmp edx, 0x7a
jle 0x45ba90
cmp edx, 0x5f
je 0x45ba90
cmp edx, 0x2e
je 0x45ba90
cmp edx, 0x2f
je 0x45ba90
test ecx, ecx
je 0x45ba9c
add ebx, dword [esp + 0x105c]
jmp 0x45ad1c
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x105c], edx
test edx, edx
jl 0x45bad2
mov eax, edx
cdq
mov ecx, dword [0x873ae4]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45bad9
mov edx, 1
jmp 0x45badb
xor edx, edx
test edx, edx
jne 0x45bb3d
mov edx, dword [0x873ae4]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45bb13
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x105c]
mov dword [edx + ecx*8], 0x20
mov dword [edx + ecx*8 + 4], 0
jmp 0x45bb3d
cmp edx, 2
jne 0x45bb2e
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1040]
mov ecx, dword [esp + 0x105c]
fstp qword [edx + ecx*8]
jmp 0x45bb3d
push 1
push 0x18b14
call fcn.0046cfa0
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.0046dce8
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.0045bd6c
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 + 0x59c0c0]
inc eax
movsx edi, al
mov dword [esp + 0x105c], edi
jmp 0x45ad57
cmp edx, 9
je 0x45bbdd
mov esi, ebx
xor ebp, ebp
jmp 0x45ad57
inc ebx
jmp 0x45ad1c
cmp edx, 0x20
je 0x45bbf1
mov esi, ebx
xor ebp, ebp
jmp 0x45ad57
inc ebx
jmp 0x45ad1c
cmp edx, 0x22
je 0x45bc07
cmp edx, 0xd
je 0x45bc07
inc ebx
jmp 0x45ad1c
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45bc3d
mov eax, edx
cdq
mov ecx, dword [0x873ae4]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45bc44
mov edx, 1
jmp 0x45bc46
xor edx, edx
test edx, edx
jne 0x45bca8
mov edx, dword [0x873ae4]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45bc7e
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x1f
mov dword [edx + ecx*8 + 4], 0
jmp 0x45bca8
cmp edx, 2
jne 0x45bc99
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1038]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45bca8
push 1
push 0x18b14
call fcn.0046cfa0
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.0046dce8
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.0045bd6c
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 0x45ad1c
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.0045be6c
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1060]
add esp, 0x1068
pop ebx
pop ebp
pop esi
pop edi
ret