Function at 0x58ef20
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
xor eax, eax
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov dword [esp + 0x14], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov al, byte [ebx]
push esi
mov esi, dword [esp + 0x24]
mov ebp, ecx
push edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], 0xffffffff
test al, al
je 0x58fc41
mov edi, dword [esp + 0x30]
lea esp, [esp]
movsx eax, al
push eax
call fcn.00622321
add esp, 4
test eax, eax
je 0x58ef98
movsx ecx, byte [esi]
push ecx
call fcn.00622321
add esp, 4
test eax, eax
je 0x58ef92
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.00622321
add esp, 4
test eax, eax
jne 0x58ef80
inc ebx
jmp case.0x58efcd.90
mov al, byte [ebx]
inc ebx
cmp al, 0x25
je 0x58efb6
mov cl, byte [esi]
inc esi
cmp al, cl
je case.0x58efcd.90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
movsx eax, byte [ebx]
inc ebx
sub eax, 0x25
mov dword [esp + 0x2c], ebx
cmp eax, 0x54
ja case.0x58efcd.38
movzx edx, byte [eax + 0x58fccc]
jmp dword [edx*4 + 0x58fc50]
mov al, byte [ebx]
cmp al, 0x63
je 0x58efb6
cmp al, 0x43
je 0x58efb6
cmp al, 0x79
je 0x58efb6
cmp al, 0x59
je 0x58efb6
cmp al, 0x78
je 0x58efb6
cmp al, 0x58
je 0x58efb6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov al, byte [esi]
inc esi
cmp al, 0x25
jne case.0x58efcd.38
jmp case.0x58efcd.90
xor ebp, ebp
mov ebx, 0x6b2188
mov edi, 0x6b2140
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f017
sub eax, edx
push eax
push esi
push edi
call fcn.0062797f
add esp, 0xc
test eax, eax
je 0x58f05d
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f034
sub eax, edx
push eax
push esi
push ebx
call fcn.0062797f
add esp, 0xc
test eax, eax
je 0x58f079
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6b2186
jl 0x58f012
jmp 0x58f08e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6b2140]
lea edx, [eax + 1]
jmp 0x58f070
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f070
jmp 0x58f08a
lea eax, [ebp*4 + 0x6b2188]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f083
sub eax, edx
add esi, eax
cmp ebp, 7
je case.0x58efcd.38
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [ecx + 0x18], ebp
mov ebp, dword [esp + 0x18]
mov edi, ecx
jmp case.0x58efcd.90
xor ebp, ebp
mov ebx, 0x6b2220
mov edi, 0x6b21a8
lea esp, [esp]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f0c5
sub eax, edx
push eax
push esi
push edi
call fcn.0062797f
add esp, 0xc
test eax, eax
je 0x58f10b
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f0e2
sub eax, edx
push eax
push esi
push ebx
call fcn.0062797f
add esp, 0xc
test eax, eax
je 0x58f129
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6b2220
jl 0x58f0c0
jmp 0x58f13e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6b21a8]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f120
jmp 0x58f13a
lea eax, [ebp*4 + 0x6b2220]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f133
sub eax, edx
add esi, eax
cmp ebp, 0xc
je case.0x58efcd.38
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [edx + 0x10], ebp
mov ebp, dword [esp + 0x18]
mov edi, edx
jmp case.0x58efcd.90
push edi
push str._a__b__e__H:_M:_S__Y
push esi
mov ecx, ebp
call fcn.0058ef20
mov esi, eax
test esi, esi
je case.0x58efcd.38
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f18c
inc esi
cmp byte [esi], 0x20
je 0x58f186
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f1c6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58f1c6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f1c6
cmp cl, 0x39
jle 0x58f1a0
cmp eax, 0x63
ja case.0x58efcd.38
mov dword [esp + 0x20], eax
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f1ea
inc esi
cmp byte [esi], 0x20
je 0x58f1e4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
mov edi, edi
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f226
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x58f226
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f226
cmp cl, 0x39
jle 0x58f200
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58efcd.38
mov dword [edi + 0xc], eax
jmp case.0x58efcd.90
push edi
push str._Y__m__d
jmp 0x58f163
push edi
push str._m__d__y
jmp 0x58f163
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f266
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x58f260
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f916
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x58f916
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f916
cmp cl, 0x39
jle 0x58f280
jmp 0x58f916
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f2c9
inc esi
cmp byte [esi], 0x20
je 0x58f2c3
mov al, byte [esi]
cmp al, 0x30
jl case.0x58efcd.38
cmp al, 0x39
jg case.0x58efcd.38
jmp 0x58f2e0
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58f304
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 0xc
ja 0x58f304
mov al, byte [esi]
cmp al, 0x30
jl 0x58f304
cmp al, 0x39
jle 0x58f2e0
lea edx, [ecx - 1]
cmp edx, 0xb
ja case.0x58efcd.38
mov eax, 0xaaaaaaab
mul ecx
shr edx, 3
lea eax, [edx + edx*2]
add eax, eax
add eax, eax
sub ecx, eax
mov dword [edi + 8], ecx
mov dword [esp + 0x10], 1
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 3
jne 0x58f346
nop
inc esi
cmp byte [esi], 0x20
je 0x58f340
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f389
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x16e
ja 0x58f389
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f389
cmp cl, 0x39
jle 0x58f360
lea edx, [eax - 1]
cmp edx, 0x16d
ja case.0x58efcd.38
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f3b6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x58f3b0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f9f6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58f9f6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f9f6
cmp cl, 0x39
jle 0x58f3d0
jmp 0x58f9f6
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f419
inc esi
cmp byte [esi], 0x20
je 0x58f413
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ecx, [ecx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f456
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x58f456
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f456
cmp cl, 0x39
jle 0x58f430
cmp eax, 0x3b
ja case.0x58efcd.38
mov dword [edi + 4], eax
jmp case.0x58efcd.90
movsx edx, byte [esi]
push edx
call fcn.00622321
add esp, 4
test eax, eax
je case.0x58efcd.90
jmp 0x58f480
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.00622321
add esp, 4
test eax, eax
jne 0x58f480
jmp case.0x58efcd.90
push 2
push esi
push 0x6b227c
call fcn.0062797f
add esp, 0xc
test eax, eax
jne 0x58f4b3
add esi, 2
jmp case.0x58efcd.90
push 2
push esi
push 0x6b2278
call fcn.0062797f
add esp, 0xc
test eax, eax
jne case.0x58efcd.38
add esi, 2
mov dword [esp + 0x1c], 1
jmp case.0x58efcd.90
push edi
push str._I:_M:_S__p
jmp 0x58f163
push edi
push str._H:_M
jmp 0x58f163
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x58efcd.38
cmp al, 0x39
jg case.0x58efcd.38
inc esi
movsx edx, al
mov al, byte [esi]
cmp al, 0x30
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2 - 0x30]
jl 0x58f51a
cmp al, 0x39
jle 0x58f505
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.0058eef0
add esp, 8
test eax, eax
je case.0x58efcd.38
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f54b
inc esi
cmp byte [esi], 0x20
je 0x58f545
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
nop
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f586
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x58f586
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f586
cmp cl, 0x39
jle 0x58f560
cmp eax, 0x3d
ja case.0x58efcd.38
mov dword [edi], eax
jmp case.0x58efcd.90
push edi
push str._H:_M:_S
jmp 0x58f163
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 1
jne 0x58f5b6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x58f5b0
mov al, byte [esi]
cmp al, 0x30
jl case.0x58efcd.38
cmp al, 0x39
jg case.0x58efcd.38
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58f5ec
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 7
ja 0x58f5ec
mov al, byte [esi]
cmp al, 0x30
jl 0x58f5ec
cmp al, 0x39
jle 0x58f5c8
lea edx, [ecx - 1]
cmp edx, 6
ja case.0x58efcd.38
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
lea edx, [eax*8]
sub edx, eax
sub ecx, edx
mov dword [edi + 0x18], ecx
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f636
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x58f630
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f676
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58f676
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f676
cmp cl, 0x39
jle 0x58f650
cmp eax, 0x63
ja case.0x58efcd.38
jmp case.0x58efcd.90
mov al, byte [esi]
cmp al, 0x30
jl case.0x58efcd.38
cmp al, 0x39
jg case.0x58efcd.38
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x58efcd.90
cmp al, 0x39
jle 0x58f696
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f6bd
inc esi
cmp byte [esi], 0x20
je 0x58f6b7
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f6f7
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x58f6f7
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f6f7
cmp cl, 0x39
jle 0x58f6d1
cmp eax, 0x35
ja case.0x58efcd.38
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x58f717
inc esi
cmp byte [esi], 0x20
je 0x58f711
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
jmp 0x58f730
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f756
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x58f756
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f756
cmp cl, 0x39
jle 0x58f730
cmp eax, 6
ja case.0x58efcd.38
mov dword [edi + 0x18], eax
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f779
inc esi
cmp byte [esi], 0x20
je 0x58f773
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ecx, [ecx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f7b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58f7b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f7b6
cmp cl, 0x39
jle 0x58f790
cmp eax, 0x63
ja case.0x58efcd.38
cmp eax, 0x45
jae 0x58f7c7
add eax, 0x64
mov dword [esp + 0x14], 1
jmp 0x58fbe7
xor eax, eax
cmp byte [esi], 0x20
mov edx, 4
jne 0x58f7e6
inc esi
cmp byte [esi], 0x20
je 0x58f7e0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f829
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x270f
ja 0x58f829
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f829
cmp cl, 0x39
jle 0x58f800
cmp eax, 0x270f
ja case.0x58efcd.38
add eax, 0xfffff894
mov dword [esp + 0x14], 0
jmp 0x58fbe7
movsx eax, byte [ebx]
sub eax, 0x48
inc ebx
cmp eax, 0x31
ja case.0x58efcd.38
movzx edx, byte [eax + 0x58fd4c]
jmp dword [edx*4 + 0x58fd24]
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f876
inc esi
cmp byte [esi], 0x20
je 0x58f870
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f8b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x58f8b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f8b6
cmp cl, 0x39
jle 0x58f890
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58efcd.38
mov dword [edi + 0xc], eax
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f8dc
inc esi
cmp byte [esi], 0x20
je 0x58f8d6
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f916
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x58f916
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f916
cmp cl, 0x39
jle 0x58f8f0
cmp eax, 0x17
ja case.0x58efcd.38
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f946
jmp 0x58f940
inc esi
cmp byte [esi], 0x20
je 0x58f940
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f986
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58f986
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f986
cmp cl, 0x39
jle 0x58f960
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58efcd.38
dec eax
mov dword [edi + 8], eax
mov dword [esp + 0x10], 1
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f9b6
nop
inc esi
cmp byte [esi], 0x20
je 0x58f9b0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f9f6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58f9f6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f9f6
cmp cl, 0x39
jle 0x58f9d0
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58efcd.38
dec eax
mov dword [edi + 0x10], eax
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fa1d
inc esi
cmp byte [esi], 0x20
je 0x58fa17
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fa57
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x58fa57
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fa57
cmp cl, 0x39
jle 0x58fa31
cmp eax, 0x3b
ja case.0x58efcd.38
mov dword [edi + 4], eax
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fa7a
inc esi
cmp byte [esi], 0x20
je 0x58fa74
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
mov edi, edi
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fab6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x58fab6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fab6
cmp cl, 0x39
jle 0x58fa90
cmp eax, 0x3d
ja case.0x58efcd.38
mov dword [edi], eax
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fad8
inc esi
cmp byte [esi], 0x20
je 0x58fad2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea esp, [esp]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fb16
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x58fb16
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fb16
cmp cl, 0x39
jle 0x58faf0
cmp eax, 0x35
ja case.0x58efcd.38
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x58fb36
inc esi
cmp byte [esi], 0x20
je 0x58fb30
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fb76
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x58fb76
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fb76
cmp cl, 0x39
jle 0x58fb50
cmp eax, 6
ja case.0x58efcd.38
mov dword [edi + 0x18], eax
jmp case.0x58efcd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fb96
inc esi
cmp byte [esi], 0x20
je 0x58fb90
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58efcd.38
cmp cl, 0x39
jg case.0x58efcd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fbd6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58fbd6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fbd6
cmp cl, 0x39
jle 0x58fbb0
cmp eax, 0x63
ja case.0x58efcd.38
cmp eax, 0x45
jae 0x58fbe7
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebx]
test al, al
jne 0x58ef60
cmp dword [esp + 0x10], 0
je 0x58fc06
cmp dword [esp + 0x1c], 0
je 0x58fc06
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x58fc41
cmp dword [esp + 0x14], 0
je 0x58fc38
lea ecx, [eax - 0x13]
mov eax, dword [edi + 0x14]
imul ecx, ecx, 0x64
cdq
mov ebx, 0x64
idiv ebx
mov eax, esi
add ecx, edx
mov dword [edi + 0x14], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc
add eax, 0xffffffed
imul eax, eax, 0x64
mov dword [edi + 0x14], eax
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc