Function at 0x45ab1c
Capabilities:
Parse credit card information

Disassembly:
push edi
push esi
push ebp
push ebx
push eax
mov eax, 0x1064
call fcn.004723b0
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.00459708
mov dword [esp + 0x1050], eax
mov dword [esp + 0x1058], edx
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x45ab70
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x45ab68
mov esi, eax
mov edx, dword [esp + 0x1050]
or edx, dword [esp + 0x1058]
je 0x45ab89
mov ebp, 0x63
jmp 0x45ab8b
xor ebp, ebp
cmp dword [0x5cf720], 0
jne 0x45aba3
mov dword [0x5cf720], 1
call fcn.0046a6c4
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 0x45bc50
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 0x45aca2
cmp edx, 0x9f
jg 0x45aca2
mov edi, 1
jmp 0x45aca4
xor edi, edi
cmp edx, 0xe0
jl 0x45acbb
cmp edx, 0xfc
jg 0x45acbb
mov eax, 1
jmp 0x45acbd
xor eax, eax
or edi, eax
test ebp, ebp
jne 0x45af02
cmp edx, 0x30
jl 0x45acdc
cmp edx, 0x39
jg 0x45acdc
inc ebx
mov ebp, 0x5b
jmp 0x45ac50
cmp edx, 0x2d
je 0x45acd1
cmp edx, 0x41
jl 0x45acf6
cmp edx, 0x5a
jg 0x45acf6
inc ebx
mov ebp, 0x5c
jmp 0x45ac50
cmp edx, 0x61
jl 0x45ad0b
cmp edx, 0x7a
jg 0x45ad0b
inc ebx
mov ebp, 0x5d
jmp 0x45ac50
cmp edx, 0x5f
je 0x45b95b
cmp edx, 0x2e
je 0x45b950
test edi, edi
je 0x45ad32
add ebx, dword [esp + 0x105c]
mov ebp, 0x60
jmp 0x45ac50
cmp edx, 0x22
je 0x45b945
cmp edx, 0x20
je 0x45b93a
cmp edx, 9
je 0x45b92f
cmp edx, 0x2f
je 0x45b8bc
cmp edx, 0x2f
je 0x45b893
cmp edx, 0x5c
je 0x45b813
cmp edx, 0x28
je 0x45b793
cmp edx, 0x29
je 0x45b713
cmp edx, 0x2c
je 0x45b693
cmp edx, 0x40
je 0x45b613
cmp edx, 0x24
je 0x45b593
cmp edx, 0x23
je 0x45b508
cmp edx, 0x23
je 0x45b488
cmp edx, 0x2b
je 0x45b3f4
cmp edx, 0x2b
je 0x45b360
cmp edx, 0x2b
je 0x45b2cc
cmp edx, 0x2b
je 0x45b1c9
cmp edx, 0x2b
je 0x45b0c6
cmp edx, 0x3b
jne 0x45ade1
inc ebx
mov esi, ebx
jmp 0x45ac50
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45ae17
mov eax, edx
cdq
mov ecx, dword [0x873ae8]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45ae1e
mov edx, 1
jmp 0x45ae20
xor edx, edx
test edx, edx
jne 0x45ae82
mov edx, dword [0x873ae8]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45ae58
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x10
mov dword [edx + ecx*8 + 4], 0
jmp 0x45ae82
cmp edx, 2
jne 0x45ae73
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1030]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45ae82
push 1
push 0x18b14
call fcn.0046cf08
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.0046dc50
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.0045bca0
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 0x45ac50
cmp ebp, 0x16
je 0x45bb2b
cmp ebp, 0x1f
je 0x45bb17
cmp ebp, 0x20
je 0x45bb03
cmp ebp, 0x5b
je 0x45b966
cmp ebp, 0x5c
je 0x45b966
cmp ebp, 0x5d
je 0x45b966
cmp ebp, 0x5e
je 0x45b966
cmp ebp, 0x5f
je 0x45b966
cmp ebp, 0x60
je 0x45b966
cmp ebp, 0x63
jne 0x45ac8b
cmp edx, 0x2a
je 0x45b05d
cmp edx, 0xd
je 0x45af70
inc ebx
jmp 0x45ac50
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45afa6
mov eax, edx
cdq
mov ecx, dword [0x873ae8]
mov edi, dword [esp + 0x108c]
mov ecx, dword [ecx + edi*4]
sub eax, dword [ecx + 0x28]
sbb edx, dword [ecx + 0x2c]
jl 0x45afad
mov edx, 1
jmp 0x45afaf
xor edx, edx
test edx, edx
jne 0x45b00b
mov edx, dword [0x873ae8]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45afe1
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 0x45b00b
cmp edx, 2
jne 0x45affc
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1028]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45b00b
push 1
push 0x18b14
call fcn.0046cf08
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.0045bca0
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 0x45ac50
cmp ecx, 0x2f
jne 0x45af65
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.0046dc50
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.0045bca0
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 0x45ac50
cmp ecx, 0x3d
jne 0x45add4
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45b103
cdq
mov ecx, dword [0x873ae8]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b10a
mov eax, 1
jmp 0x45b10c
xor eax, eax
test eax, eax
jne 0x45b16a
mov eax, dword [0x873ae8]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45b143
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xf
mov dword [eax + edx*8 + 4], 0
jmp 0x45b16a
cmp eax, 2
jne 0x45b15b
mov eax, dword [edx + 0x34]
fld qword [esp + 0x18]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45b16a
push 1
push 0x18b14
call fcn.0046cf08
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x87acb0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b173
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bca0
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 0x45ac50
cmp ecx, 0x3d
jne 0x45adcb
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1088]
add eax, edx
mov dword [esp + 0x104c], eax
test eax, eax
jl 0x45b206
cdq
mov ecx, dword [0x873ae8]
mov esi, dword [esp + 0x108c]
mov edi, dword [ecx + esi*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45b20d
mov eax, 1
jmp 0x45b20f
xor eax, eax
test eax, eax
jne 0x45b26d
mov eax, dword [0x873ae8]
mov edx, dword [esp + 0x108c]
mov edx, dword [eax + edx*4]
movsx eax, byte [edx + 1]
cmp eax, 1
jne 0x45b246
mov eax, dword [edx + 0x30]
mov edx, dword [esp + 0x104c]
mov dword [eax + edx*8], 0xe
mov dword [eax + edx*8 + 4], 0
jmp 0x45b26d
cmp eax, 2
jne 0x45b25e
mov eax, dword [edx + 0x34]
fld qword [esp + 0x20]
mov edx, dword [esp + 0x104c]
fstp qword [eax + edx*8]
jmp 0x45b26d
push 1
push 0x18b14
call fcn.0046cf08
add esp, 8
lea esi, [esp + 0x28]
mov edi, 0x87acac
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b276
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bca0
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 0x45ac50
cmp ecx, 0x3d
jne 0x45adc2
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.0045bda0
lea esi, [esp + 0x28]
mov edi, 0x87aca8
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b30a
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bca0
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 0x45ac50
cmp ecx, 0x3d
jne 0x45adb9
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.0045bda0
lea esi, [esp + 0x28]
mov edi, 0x87aca4
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b39e
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bca0
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 0x45ac50
cmp ecx, 0x2b
jne 0x45adb0
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.0045bda0
lea esi, [esp + 0x28]
mov edi, 0x87aca0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45b432
mov edx, dword [esp + 0x1064]
mov esi, dword [esp + 0x1080]
add edx, esi
mov eax, dword [esp + 0x1084]
lea ecx, [esp + 0x28]
call fcn.0045bca0
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 0x45ac50
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.0045bda0
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.0045bca0
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 0x45ac50
cmp ecx, 0x3d
jne 0x45ad9e
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.0045bda0
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.0045bca0
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 0x45ac50
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.0045bda0
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.0045bca0
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 0x45ac50
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.0045bda0
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.0045bca0
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 0x45ac50
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.0045bda0
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.0045bca0
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 0x45ac50
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.0045bda0
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.0045bca0
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 0x45ac50
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.0045bda0
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.0045bca0
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 0x45ac50
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.0045bda0
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.0045bca0
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 0x45ac50
cmp ecx, 0x2a
jne 0x45ad5f
inc ebx
mov edx, 1
mov dword [esp + 0x1050], edx
xor ecx, ecx
mov dword [esp + 0x1058], ecx
mov ebp, 0x63
jmp 0x45ac50
cmp ecx, 0x2f
jne 0x45ad56
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.0045bda0
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.0045bca0
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 0x45ac50
inc ebx
mov ebp, 0x1f
jmp 0x45ac50
inc ebx
mov ebp, 0x16
jmp 0x45ac50
inc ebx
mov ebp, 0x5f
jmp 0x45ac50
inc ebx
mov ebp, 0x5e
jmp 0x45ac50
cmp edx, 0x81
jl 0x45b976
cmp edx, 0x9f
jle 0x45b986
cmp edx, 0xe0
jl 0x45b991
cmp edx, 0xfc
jg 0x45b98d
mov ecx, 1
jmp 0x45b993
xor ecx, ecx
jmp 0x45b993
xor ecx, ecx
cmp edx, 0x30
jl 0x45b99d
cmp edx, 0x39
jle 0x45b9c4
cmp edx, 0x41
jl 0x45b9a7
cmp edx, 0x5a
jle 0x45b9c4
cmp edx, 0x61
jl 0x45b9b1
cmp edx, 0x7a
jle 0x45b9c4
cmp edx, 0x5f
je 0x45b9c4
cmp edx, 0x2e
je 0x45b9c4
cmp edx, 0x2f
je 0x45b9c4
test ecx, ecx
je 0x45b9d0
add ebx, dword [esp + 0x105c]
jmp 0x45ac50
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x105c], edx
test edx, edx
jl 0x45ba06
mov eax, edx
cdq
mov ecx, dword [0x873ae8]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45ba0d
mov edx, 1
jmp 0x45ba0f
xor edx, edx
test edx, edx
jne 0x45ba71
mov edx, dword [0x873ae8]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45ba47
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x105c]
mov dword [edx + ecx*8], 0x20
mov dword [edx + ecx*8 + 4], 0
jmp 0x45ba71
cmp edx, 2
jne 0x45ba62
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1040]
mov ecx, dword [esp + 0x105c]
fstp qword [edx + ecx*8]
jmp 0x45ba71
push 1
push 0x18b14
call fcn.0046cf08
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.0046dc50
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.0045bca0
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 0x45ac8b
cmp edx, 9
je 0x45bb11
mov esi, ebx
xor ebp, ebp
jmp 0x45ac8b
inc ebx
jmp 0x45ac50
cmp edx, 0x20
je 0x45bb25
mov esi, ebx
xor ebp, ebp
jmp 0x45ac8b
inc ebx
jmp 0x45ac50
cmp edx, 0x22
je 0x45bb3b
cmp edx, 0xd
je 0x45bb3b
inc ebx
jmp 0x45ac50
mov edx, dword [esp + 0x1064]
mov ecx, dword [esp + 0x1088]
add edx, ecx
mov dword [esp + 0x104c], edx
test edx, edx
jl 0x45bb71
mov eax, edx
cdq
mov ecx, dword [0x873ae8]
mov ebp, dword [esp + 0x108c]
mov edi, dword [ecx + ebp*4]
sub eax, dword [edi + 0x28]
sbb edx, dword [edi + 0x2c]
jl 0x45bb78
mov edx, 1
jmp 0x45bb7a
xor edx, edx
test edx, edx
jne 0x45bbdc
mov edx, dword [0x873ae8]
mov ecx, dword [esp + 0x108c]
mov ecx, dword [edx + ecx*4]
movsx edx, byte [ecx + 1]
cmp edx, 1
jne 0x45bbb2
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x104c]
mov dword [edx + ecx*8], 0x1f
mov dword [edx + ecx*8 + 4], 0
jmp 0x45bbdc
cmp edx, 2
jne 0x45bbcd
mov edx, dword [ecx + 0x34]
fld qword [esp + 0x1038]
mov ecx, dword [esp + 0x104c]
fstp qword [edx + ecx*8]
jmp 0x45bbdc
push 1
push 0x18b14
call fcn.0046cf08
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.0046dc50
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.0045bca0
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 0x45ac50
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.0045bda0
mov eax, dword [esp + 0x1064]
mov edx, dword [esp + 0x1060]
add esp, 0x1068
pop ebx
pop ebp
pop esi
pop edi
ret