Function at 0x517aa1
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0x5b46a4]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov eax, ecx
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp + 8]
or edx, 0xffffffff
push esi
xor ebx, ebx
mov dword [ebp - 0x94], ecx
push edi
or edi, edx
mov dword [ebp - 0xac], eax
xor ecx, ecx
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x68], 0
mov esi, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x8c], edx
test eax, eax
je 0x518448
mov dword [ebp - 0xa8], 0xc
cmp byte [eax], cl
je 0x518448
nop
mov eax, ecx
inc ecx
mov dword [ebp - 0x98], ecx
cmp eax, 0x3e8
jg 0x518448
mov cl, byte [esi]
movsx eax, cl
mov dword [ebp - 0x6c], eax
add eax, 0xffffffd5
cmp eax, 0x4c
ja case.0x51745f.44
movzx eax, byte [eax + 0x5184ac]
jmp dword [eax*4 + 0x51845c]
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x51748f
mov al, byte [esi + 1]
cmp al, 0x70
je 0x517478
cmp al, 0x50
jne 0x51748f
mov al, byte [esi + 2]
cmp al, 0x72
je 0x517483
cmp al, 0x52
jne 0x51748f
mov dword [ebp - 0x60], 0xb
jmp case.0x51745f.44
test ebx, ebx
jne 0x5174b6
mov al, byte [esi + 1]
cmp al, 0x73
je 0x51749e
cmp al, 0x53
jne 0x5174b6
mov al, byte [esi + 2]
cmp al, 0x74
je 0x5174a9
cmp al, 0x54
jne 0x5174b6
mov ebx, 0x1c
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
test ecx, ecx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x75
je 0x5174cd
cmp al, 0x55
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x67
je 0x5174dc
cmp al, 0x47
jne case.0x51745f.44
mov dword [ebp - 0x60], 0xf
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x73
je 0x5174ff
cmp al, 0x53
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x51750e
cmp al, 0x54
jne case.0x51745f.44
mov ebx, 0x1f
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x64
je 0x51752e
cmp al, 0x44
jne 0x51753b
mov cl, byte [esi + 2]
cmp cl, 0x74
je 0x517563
cmp cl, 0x54
je 0x517563
cmp al, 0x73
je 0x517547
cmp al, 0x53
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x517556
cmp al, 0x54
jne case.0x51745f.44
mov ebx, 0x18
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
mov ebx, 0x19
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
cmp dword [ebp - 0x60], 0
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x65
je 0x517589
cmp al, 0x45
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x63
je 0x517598
cmp al, 0x43
jne case.0x51745f.44
mov dword [ebp - 0x60], 0x13
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x64
je 0x5175b7
cmp al, 0x44
jne 0x5175c4
mov cl, byte [esi + 2]
cmp cl, 0x74
je 0x51760e
cmp cl, 0x54
je 0x51760e
cmp al, 0x65
je 0x5175cc
cmp al, 0x45
jne 0x5175d9
mov cl, byte [esi + 2]
cmp cl, 0x74
je 0x517601
cmp cl, 0x54
je 0x517601
cmp al, 0x73
je 0x5175e5
cmp al, 0x53
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x5175f4
cmp al, 0x54
jne case.0x51745f.44
mov ebx, 0x1a
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
mov ebx, 0x21
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
mov ebx, 0x1b
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
cmp dword [ebp - 0x60], 0
jne 0x517643
mov al, byte [esi + 1]
cmp al, 0x65
je 0x51762c
cmp al, 0x45
jne 0x517643
mov al, byte [esi + 2]
cmp al, 0x62
je 0x517637
cmp al, 0x42
jne 0x517643
mov dword [ebp - 0x60], 9
jmp case.0x51745f.44
mov ecx, dword [ebp - 0x68]
test ecx, ecx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x72
je 0x51765d
cmp al, 0x52
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x69
je 0x51766c
cmp al, 0x49
jne case.0x51745f.44
mov dword [ebp - 0x68], 6
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x6d
je 0x51768f
cmp al, 0x4d
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x51769e
cmp al, 0x54
jne case.0x51745f.44
mov ebx, 0x1e
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x73
je 0x5176c2
cmp al, 0x53
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x5176d1
cmp al, 0x54
jne case.0x51745f.44
mov ebx, 0x23
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x517707
mov al, byte [esi + 1]
cmp al, 0x61
je 0x5176f0
cmp al, 0x41
jne 0x517707
mov al, byte [esi + 2]
cmp al, 0x6e
je 0x5176fb
cmp al, 0x4e
jne 0x517707
mov dword [ebp - 0x60], 8
jmp case.0x51745f.44
test ebx, ebx
jne 0x51772e
mov al, byte [esi + 1]
cmp al, 0x73
je 0x517716
cmp al, 0x53
jne 0x51772e
mov al, byte [esi + 2]
cmp al, 0x74
je 0x517721
cmp al, 0x54
jne 0x51772e
mov ebx, 0x22
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
test ecx, ecx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x75
je 0x517741
cmp al, 0x55
jne 0x51774e
mov cl, byte [esi + 2]
cmp cl, 0x6c
je 0x517775
cmp cl, 0x4c
je 0x517775
cmp al, 0x75
je 0x51775a
cmp al, 0x55
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x6e
je 0x517769
cmp al, 0x4e
jne case.0x51745f.44
mov dword [ebp - 0x60], 0xd
jmp case.0x51745f.44
mov dword [ebp - 0x60], 0xe
jmp case.0x51745f.44
cmp dword [ebp - 0x60], 0
jne 0x5177ca
mov al, byte [esi + 1]
cmp al, 0x61
je 0x517792
cmp al, 0x41
jne 0x51779f
mov cl, byte [esi + 2]
cmp cl, 0x72
je 0x5177be
cmp cl, 0x52
je 0x5177be
cmp al, 0x61
je 0x5177a7
cmp al, 0x41
jne 0x5177ca
mov al, byte [esi + 2]
cmp al, 0x79
je 0x5177b2
cmp al, 0x59
jne 0x5177ca
mov dword [ebp - 0x60], 0xc
jmp case.0x51745f.44
mov dword [ebp - 0x60], 0xa
jmp case.0x51745f.44
test ebx, ebx
jne 0x517813
mov al, byte [esi + 1]
cmp al, 0x64
je 0x5177d9
cmp al, 0x44
jne 0x5177e6
mov cl, byte [esi + 2]
cmp cl, 0x74
je 0x517806
cmp cl, 0x54
je 0x517806
cmp al, 0x65
je 0x5177ee
cmp al, 0x45
jne 0x517813
mov al, byte [esi + 2]
cmp al, 0x74
je 0x5177f9
cmp al, 0x54
jne 0x517813
mov ebx, 0x20
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
mov ebx, 0x17
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
cmp dword [ebp - 0x68], 0
jne 0x51783b
mov al, byte [esi + 1]
cmp al, 0x6f
je 0x517824
cmp al, 0x4f
jne 0x51783b
mov al, byte [esi + 2]
cmp al, 0x6e
je 0x51782f
cmp al, 0x4e
jne 0x51783b
mov dword [ebp - 0x68], 2
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x73
je 0x517852
cmp al, 0x53
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x517861
cmp al, 0x54
jne case.0x51745f.44
mov ebx, 0x16
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
cmp dword [ebp - 0x60], 0
jne 0x517896
mov al, byte [esi + 1]
cmp al, 0x6f
je 0x51787f
cmp al, 0x4f
jne 0x517896
mov al, byte [esi + 2]
cmp al, 0x76
je 0x51788a
cmp al, 0x56
jne 0x517896
mov dword [ebp - 0x60], 0x12
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x73
je 0x5178ad
cmp al, 0x53
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x5178bc
cmp al, 0x54
jne case.0x51745f.44
mov ebx, 0x1d
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
cmp dword [ebp - 0x60], 0
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x63
je 0x5178e2
cmp al, 0x43
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x5178f1
cmp al, 0x54
jne case.0x51745f.44
mov dword [ebp - 0x60], 0x11
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x64
je 0x517910
cmp al, 0x44
jne 0x51791d
mov cl, byte [esi + 2]
cmp cl, 0x74
je 0x517945
cmp cl, 0x54
je 0x517945
cmp al, 0x73
je 0x517929
cmp al, 0x53
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x74
je 0x517938
cmp al, 0x54
jne case.0x51745f.44
mov ebx, 0x14
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
mov ebx, 0x15
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
mov ecx, dword [ebp - 0x68]
test ecx, ecx
jne 0x51797b
mov al, byte [esi + 1]
cmp al, 0x61
je 0x517964
cmp al, 0x41
jne 0x51797b
mov al, byte [esi + 2]
cmp al, 0x74
je 0x51796f
cmp al, 0x54
jne 0x51797b
mov dword [ebp - 0x68], 7
jmp case.0x51745f.44
cmp dword [ebp - 0x60], 0
jne 0x5179a3
mov al, byte [esi + 1]
cmp al, 0x65
je 0x51798c
cmp al, 0x45
jne 0x5179a3
mov al, byte [esi + 2]
cmp al, 0x70
je 0x517997
cmp al, 0x50
jne 0x5179a3
mov dword [ebp - 0x60], 0x10
jmp case.0x51745f.44
test ecx, ecx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x75
je 0x5179ba
cmp al, 0x55
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x6e
je 0x5179c9
cmp al, 0x4e
jne case.0x51745f.44
mov dword [ebp - 0x68], 1
jmp case.0x51745f.44
cmp dword [ebp - 0x68], 0
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x68
je 0x5179ea
cmp al, 0x48
jne 0x5179f7
mov cl, byte [esi + 2]
cmp cl, 0x75
je 0x517a1e
cmp cl, 0x55
je 0x517a1e
cmp al, 0x75
je 0x517a03
cmp al, 0x55
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x65
je 0x517a12
cmp al, 0x45
jne case.0x51745f.44
mov dword [ebp - 0x68], 3
jmp case.0x51745f.44
mov dword [ebp - 0x68], 5
jmp case.0x51745f.44
test ebx, ebx
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x74
je 0x517a41
cmp al, 0x54
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x41
jl 0x517a50
cmp al, 0x5a
jle case.0x51745f.44
cmp al, 0x61
jl 0x51769e
cmp al, 0x7a
jle case.0x51745f.44
mov ebx, 0x1e
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
cmp dword [ebp - 0x68], 0
jne case.0x51745f.44
mov al, byte [esi + 1]
cmp al, 0x65
je 0x517a86
cmp al, 0x45
jne case.0x51745f.44
mov al, byte [esi + 2]
cmp al, 0x64
je 0x517a95
cmp al, 0x44
jne case.0x51745f.44
mov dword [ebp - 0x68], 4
jmp case.0x51745f.44
cmp edx, 0xffffffff
je 0x517aac
inc esi
jmp case.0x51745f.44
test ebx, ebx
je 0x517abb
cmp ebx, 0x1e
je 0x517abb
inc esi
jmp case.0x51745f.44
mov dl, byte [esi + 1]
xor ebx, ebx
cmp cl, 0x2b
sete bl
inc esi
mov eax, esi
lea ebx, [ebx*2 - 1]
cmp dl, 0x30
jl 0x518166
mov cl, dl
nop dword [eax + eax]
cmp cl, 0x39
jg 0x517aee
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x30
jge 0x517ae0
cmp esi, eax
je 0x5180db
sub eax, esi
cmp eax, 4
jne 0x517b37
movsx eax, dl
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 1]
lea eax, [eax + ecx*2]
lea ecx, [eax + eax*2]
movsx eax, byte [esi + 2]
lea eax, [eax + ecx*2]
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 3]
lea ecx, [ecx - 0x3ee8]
lea ecx, [eax + ecx*2]
imul ebx, ecx
mov dword [ebp - 0x78], ebx
mov ebx, 0x1e
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
cmp eax, 2
jne 0x517b50
movsx eax, dl
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 1]
lea eax, [eax + ecx*2]
add eax, 0xfffffdf0
jmp 0x517b5f
cmp eax, 1
jne 0x518166
movsx eax, dl
sub eax, 0x30
mov ecx, eax
shl ecx, 4
sub ecx, eax
shl ecx, 2
imul ebx, ecx
mov dword [ebp - 0x78], ebx
mov ebx, 0x1e
mov dword [ebp - 0x58], ebx
jmp case.0x51745f.44
lea ebx, [esi + 1]
mov dword [ebp - 0x7c], 0xffffffff
mov edx, ebx
or edi, 0xffffffff
mov al, byte [edx]
cmp al, 0x30
jl 0x517b9d
cmp al, 0x39
jg 0x517b9d
mov al, byte [edx + 1]
inc edx
cmp al, 0x30
jge 0x517b91
mov al, byte [edx]
cmp al, 0x3a
jne 0x517d6a
cmp dword [ebp - 0x84], 0
jl 0x517bba
cmp dword [ebp - 0x80], 0
jge 0x517f99
mov eax, edx
sub eax, esi
cmp eax, 2
jg 0x517f99
mov eax, dword [ebp - 0x6c]
jne 0x517bdc
lea ecx, [eax + eax*4]
movsx eax, byte [ebx]
lea eax, [eax + ecx*2]
add eax, 0xfffffdf0
jmp 0x517bdf
add eax, 0xffffffd0
inc edx
mov dword [ebp - 0x6c], eax
mov esi, edx
mov al, byte [edx]
cmp al, 0x30
jl 0x517f99
nop
cmp al, 0x39
jg 0x517bfc
mov al, byte [edx + 1]
inc edx
cmp al, 0x30
jge 0x517bf0
cmp edx, esi
je 0x517f99
mov eax, edx
sub eax, esi
cmp eax, 2
jg 0x517f99
movsx eax, byte [esi]
jne 0x517c27
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 1]
lea eax, [eax + ecx*2]
add eax, 0xfffffdf0
jmp 0x517c2a
sub eax, 0x30
cmp byte [edx], 0x3a
mov esi, edx
mov dword [ebp - 0x88], eax
jne 0x517c3a
lea esi, [edx + 1]
mov cl, byte [esi]
mov edx, esi
cmp cl, 0x30
jl 0x517c7e
mov al, cl
cmp al, 0x39
jg 0x517c51
mov al, byte [edx + 1]
inc edx
cmp al, 0x30
jge 0x517c45
cmp edx, esi
je 0x517c7e
mov eax, edx
sub eax, esi
cmp eax, 2
jg 0x517f99
movsx eax, cl
jne 0x517c78
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 1]
lea eax, [eax + ecx*2]
add eax, 0xfffffdf0
jmp 0x517c7b
sub eax, 0x30
mov dword [ebp - 0x7c], eax
cmp byte [edx], 0x2e
jne 0x517ccb
mov al, byte [edx + 1]
inc edx
xor edi, edi
mov ebx, edx
cmp al, 0x30
jl 0x517cb1
mov esi, edx
sub esi, ebx
cmp al, 0x39
jg 0x517cb1
cmp esi, 6
jge 0x517ca8
lea edi, [edi + edi*4]
movsx eax, al
lea edi, [edi - 0x18]
lea edi, [eax + edi*2]
mov al, byte [edx + 1]
inc edx
inc esi
cmp al, 0x30
jge 0x517c93
mov ecx, edx
sub ecx, ebx
cmp ecx, 6
jge 0x517ccb
mov eax, 6
sub eax, ecx
lea edi, [edi + edi*4]
add edi, edi
sub eax, 1
jne 0x517cc1
mov al, byte [edx]
mov esi, dword [ebp - 0x6c]
cmp al, 0x5a
jne 0x517cde
mov ebx, 0x1e
mov dword [ebp - 0x58], ebx
jmp 0x517d45
cmp esi, 0xc
jg 0x517d42
mov ecx, edx
test al, al
je 0x517d00
nop dword [eax]
cmp al, 0x20
je 0x517cf8
cmp al, 9
jne 0x517d00
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x517cf0
mov al, byte [ecx]
cmp al, 0x70
je 0x517d0a
cmp al, 0x50
jne 0x517d17
mov bl, byte [ecx + 1]
cmp bl, 0x6d
je 0x517d33
cmp bl, 0x4d
je 0x517d33
cmp esi, 0xc
jne 0x517d42
cmp al, 0x61
je 0x517d24
cmp al, 0x41
jne 0x517d42
mov al, byte [ecx + 1]
cmp al, 0x6d
je 0x517d2f
cmp al, 0x4d
jne 0x517d42
xor esi, esi
jmp 0x517d42
cmp esi, 0xc
lea eax, [esi + 0xc]
cmove eax, dword [ebp - 0xa8]
mov esi, eax
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x84], esi
mov esi, edx
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], edi
jmp 0x517f9c
cmp al, 0x2f
je 0x517d76
cmp al, 0x2d
jne 0x51803d
mov cl, byte [edx + 1]
cmp cl, 0x30
jl 0x51803d
cmp cl, 0x39
jg 0x51803d
cmp dword [ebp - 0x60], 0
jne 0x517f99
mov eax, dword [ebp - 0x6c]
lea edx, [eax - 0x30]
mov al, byte [ebx]
cmp al, 0x30
jl 0x517dea
cmp al, 0x39
jg 0x517dea
movsx eax, al
lea ecx, [edx + edx*4]
inc ebx
lea edx, [ecx - 0x18]
lea edx, [eax + edx*2]
mov al, byte [ebx]
cmp al, 0x30
jl 0x517dea
cmp al, 0x39
jg 0x517dea
movsx eax, al
lea ecx, [edx - 6]
lea ecx, [edx + ecx*4]
lea ecx, [eax + ecx*2]
mov al, byte [ebx + 1]
cmp al, 0x30
jl 0x517f99
cmp al, 0x39
jg 0x517f99
movsx eax, al
lea ecx, [ecx + ecx*4]
lea edx, [ecx - 0x18]
add ebx, 2
lea edx, [eax + edx*2]
mov al, byte [ebx]
cmp al, 0x2f
je 0x517df8
cmp al, 0x2d
jne 0x517f99
mov al, byte [ebx + 1]
cmp al, 0x30
jl 0x517f99
cmp al, 0x39
jg 0x517f99
add ebx, 2
movsx edi, al
sub edi, 0x30
mov al, byte [ebx]
cmp al, 0x30
jl 0x517e2b
cmp al, 0x39
jg 0x517e2b
lea ecx, [edi + edi*4]
movsx eax, al
lea edi, [ecx - 0x18]
inc ebx
lea edi, [eax + edi*2]
mov al, byte [ebx]
cmp al, 0x2f
je 0x517e39
cmp al, 0x2d
jne 0x517f99
mov al, byte [ebx + 1]
cmp al, 0x30
jl 0x517f99
cmp al, 0x39
jg 0x517f99
mov cl, byte [ebx + 2]
add ebx, 2
movsx eax, al
sub eax, 0x30
mov byte [ebp - 0x61], cl
cmp cl, 0x30
jl 0x517ece
cmp cl, 0x39
jg 0x517e73
lea ecx, [eax + eax*4]
movsx eax, byte [ebp - 0x61]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc ebx
mov cl, byte [ebx]
mov byte [ebp - 0x61], cl
cmp cl, 0x30
jl 0x517ece
cmp cl, 0x39
jg 0x517ece
lea ecx, [eax + eax*4]
movsx eax, byte [ebp - 0x61]
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
mov al, byte [ebx + 1]
cmp al, 0x30
jl 0x517f99
cmp al, 0x39
jg 0x517f99
movsx eax, al
lea ecx, [ecx + ecx*4]
add ebx, 2
lea eax, [eax + ecx*2]
mov cl, byte [ebx]
add eax, 0xffffffd0
mov byte [ebp - 0x61], cl
cmp cl, 0x30
jl 0x517ece
cmp cl, 0x39
jg 0x517ece
lea ecx, [eax + eax*4]
movsx eax, byte [ebp - 0x61]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc ebx
mov cl, byte [ebx]
cmp cl, 0x54
jne 0x517ee2
mov ch, byte [ebx + 1]
cmp ch, 0x30
jl 0x517ee2
cmp ch, 0x39
jle 0x517f0c
cmp cl, 0x30
jl 0x517ef0
cmp cl, 0x39
jle 0x517f99
cmp cl, 0x41
jl 0x517efe
cmp cl, 0x5a
jle 0x517f99
cmp cl, 0x61
jl 0x517f0c
cmp cl, 0x7a
jle 0x517f99
cmp edx, 0x1f
jg 0x517f64
test edx, edx
je 0x517f64
cmp edx, 0xc
jle 0x517f1f
cmp edi, 0xc
jg 0x517f97
cmp eax, 0x46
jge 0x517f2b
add eax, 0x7d0
jmp 0x517f35
cmp eax, 0x64
jge 0x517f35
add eax, 0x76c
cmp edx, 0xc
jle 0x517f4f
lea ecx, [edi + 7]
mov dword [ebp - 0x70], edx
mov edi, eax
mov dword [ebp - 0x60], ecx
mov esi, ebx
mov dword [ebp - 0x5c], edi
mov ebx, dword [ebp - 0x58]
jmp case.0x51745f.44
mov dword [ebp - 0x70], edi
add edx, 7
mov edi, eax
mov dword [ebp - 0x60], edx
mov esi, ebx
mov dword [ebp - 0x5c], edi
mov ebx, dword [ebp - 0x58]
jmp case.0x51745f.44
cmp edi, 0xc
jg 0x517f99
cmp eax, 0x1f
jg 0x517f99
mov ecx, edx
mov dword [ebp - 0x5c], ecx
cmp edx, 0x46
jge 0x517f80
lea ecx, [edx + 0x7d0]
jmp 0x517f8b
cmp edx, 0x64
jge 0x517f8e
lea ecx, [edx + 0x76c]
mov dword [ebp - 0x5c], ecx
lea edx, [edi + 7]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x60], edx
mov esi, ebx
mov ebx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x5c]
mov al, byte [esi]
test al, al
je 0x517ff0
cmp al, 0x20
je 0x51819b
cmp al, 9
je 0x517ff0
cmp al, 0x2c
je 0x517ff0
cmp al, 0x3b
je 0x517ff0
cmp al, 0x2d
je 0x517ff0
cmp al, 0x2b
je 0x517ff0
cmp al, 0x2f
je 0x517ff0
cmp al, 0x28
je 0x517ff0
cmp al, 0x29
je 0x517ff0
cmp al, 0x5b
je 0x517ff0
cmp al, 0x5d
je 0x517ff0
cmp al, 0x54
jne 0x517fe4
mov al, byte [esi + 1]
cmp al, 0x30
jl 0x517fe4
cmp al, 0x39
jle 0x517ff0
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x517fa5
nop dword [eax]
mov al, byte [esi]
cmp al, 0x20
je 0x51819b
cmp al, 9
je 0x51819b
cmp al, 0x2c
je 0x51819b
cmp al, 0x3b
je 0x51819b
cmp al, 0x2f
je 0x51819b
cmp al, 0x28
je 0x51819b
cmp al, 0x29
je 0x51819b
cmp al, 0x5b
je 0x51819b
cmp al, 0x5d
jne 0x51816e
inc esi
jmp 0x517ff0
cmp al, 0x41
jl 0x518049
cmp al, 0x5a
jle 0x517f99
cmp al, 0x61
jl 0x518055
cmp al, 0x7a
jle 0x517f99
sub edx, esi
cmp edx, 5
jne 0x5180a2
mov edi, dword [ebp - 0x5c]
test edi, edi
jns 0x518166
mov eax, dword [ebp - 0x6c]
lea ecx, [eax + eax*4]
movsx eax, byte [ebx]
mov ebx, dword [ebp - 0x58]
lea eax, [eax + ecx*2]
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 2]
lea eax, [eax + ecx*2]
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 3]
lea eax, [eax + ecx*2]
lea edi, [eax + eax*4]
movsx eax, byte [esi + 4]
lea edi, [edi - 0x411a8]
lea edi, [eax + edi*2]
mov dword [ebp - 0x5c], edi
jmp case.0x51745f.44
cmp edx, 4
jne 0x5180e3
mov edi, dword [ebp - 0x5c]
test edi, edi
jns 0x518166
mov eax, dword [ebp - 0x6c]
lea ecx, [eax + eax*4]
movsx eax, byte [ebx]
lea eax, [eax + ecx*2]
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 2]
lea eax, [eax + ecx*2]
lea edi, [eax + eax*4]
movsx eax, byte [esi + 3]
lea edi, [edi - 0x6828]
lea edi, [eax + edi*2]
mov dword [ebp - 0x5c], edi
mov ebx, dword [ebp - 0x58]
jmp case.0x51745f.44
cmp edx, 2
jne 0x518146
mov eax, dword [ebp - 0x6c]
lea ecx, [eax + eax*4]
movsx eax, byte [ebx]
lea eax, [eax + ecx*2]
add eax, 0xfffffdf0
cmp dword [ebp - 0x70], 0
jge 0x51810c
cmp eax, 0x20
jge 0x51810c
mov dword [ebp - 0x70], eax
jmp 0x517f99
mov edi, dword [ebp - 0x5c]
test edi, edi
jns 0x518166
mov ebx, dword [ebp - 0x58]
cmp eax, 0x46
jge 0x518129
lea edi, [eax + 0x7d0]
mov dword [ebp - 0x5c], edi
jmp case.0x51745f.44
cmp eax, 0x64
jge 0x51813c
lea edi, [eax + 0x76c]
mov dword [ebp - 0x5c], edi
jmp case.0x51745f.44
mov edi, eax
mov dword [ebp - 0x5c], edi
jmp case.0x51745f.44
cmp edx, 1
jne 0x518163
cmp dword [ebp - 0x70], 0
jge 0x517f99
mov eax, dword [ebp - 0x6c]
add eax, 0xffffffd0
mov dword [ebp - 0x70], eax
jmp 0x517f99
mov edi, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x58]
jmp case.0x51745f.44
cmp byte [esi], 0x2d
jne 0x5181a1
cmp esi, dword [ebp - 0xac]
jbe 0x518190
movzx eax, byte [esi - 1]
push eax
call fcn.00543997
add esp, 4
test eax, eax
je 0x518190
test edi, edi
js 0x51819b
mov al, byte [esi + 1]
cmp al, 0x30
jl 0x51819b
cmp al, 0x39
jle 0x5181a1
inc esi
jmp 0x517ff0
cmp byte [esi], 0x54
jne 0x5181b5
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jl 0x5181b5
cmp al, 0x39
cmovle esi, ecx
cmp byte [esi], 0
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x98]
jne 0x517430
mov esi, edx
test ebx, ebx
je case.default.0x5181e6
cmp esi, 0xffffffff
jne case.default.0x5181e6
lea eax, [ebx - 0x14]
cmp eax, 0xf
ja case.default.0x5181e6
jmp dword [eax*4 + 0x5184fc]
mov esi, 0xfffffe20
jmp case.default.0x5181e6
mov esi, 0xfffffe20
mov dword [ebp - 0x74], 0x3c
jmp case.default.0x5181e6
mov esi, 0xfffffe5c
jmp case.default.0x5181e6
mov esi, 0xfffffe5c
mov dword [ebp - 0x74], 0x3c
jmp case.default.0x5181e6
mov esi, 0xfffffe98
jmp case.default.0x5181e6
mov esi, 0xfffffe98
mov dword [ebp - 0x74], 0x3c
jmp case.default.0x5181e6
mov esi, 0xfffffed4
jmp case.default.0x5181e6
mov esi, 0xfffffed4
mov dword [ebp - 0x74], 0x3c
jmp case.default.0x5181e6
mov esi, 0xffffff10
jmp case.default.0x5181e6
mov esi, 0xffffff2e
jmp case.default.0x5181e6
xor esi, esi
jmp case.default.0x5181e6
xor esi, esi
mov dword [ebp - 0x74], 0x3c
jmp case.default.0x5181e6
mov esi, 0x3c
jmp case.default.0x5181e6
mov esi, 0x78
jmp case.default.0x5181e6
mov esi, 0x14a
jmp case.default.0x5181e6
mov esi, 0x21c
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x518448
cmp dword [ebp - 0x70], 0xffffffff
je 0x518448
cmp edi, 0xffffffff
je 0x518448
cmp edi, 0x7fff
jg 0x518448
cmp dword [ebp - 0x8c], 0xffffffff
xorps xmm0, xmm0
movups xmmword [ebp - 0x30], xmm0
movd eax, xmm0
movups xmmword [ebp - 0x20], xmm0
mov word [ebp - 0x18], di
cmovne eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x90], 0xffffffff
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
cmovne eax, dword [ebp - 0x90]
cmp dword [ebp - 0x80], 0xffffffff
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
cmovne eax, dword [ebp - 0x80]
cmp dword [ebp - 0x84], 0xffffffff
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
cmovne eax, dword [ebp - 0x84]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x20], eax
lea eax, [ecx - 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x68]
movq qword [ebp - 0x10], xmm0
test eax, eax
je 0x51831c
dec al
mov byte [ebp - 0x16], al
lea ecx, [ebp - 0x30]
call fcn.00517070
test ebx, ebx
jne 0x518337
cmp dword [ebp - 0xa0], ebx
je 0x518337
xor esi, esi
jmp 0x518406
cmp esi, 0xffffffff
jne 0x518406
mov cx, word [ebp - 0x18]
mov eax, 0x7b2
cmp cx, ax
jl 0x5183c3
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
movsx eax, cx
sub eax, 0x76c
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x54]
push eax
call fcn.0054a35e
mov ecx, eax
add esp, 4
and ecx, edx
cmp ecx, esi
je 0x5183c3
push 0
push 0xf4240
push edx
push eax
call fcn.0053a570
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
mov eax, dword [ebp - 0x30]
mov dword [ecx + 4], edx
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0053a230
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xa4]
mov dword [ebp - 0xa4], 0x15180
push eax
lea eax, [ebp - 0x54]
mov dword [ebp - 0xa0], 0
push eax
call fcn.00544f5b
mov eax, dword [ebp - 0x48]
add esp, 8
add eax, 0xfffffffe
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x4c]
lea eax, [eax + ecx*8]
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov eax, dword [ebp - 0x50]
lea esi, [eax + ecx*4]
mov eax, esi
lea ecx, [ebp - 0x30]
shl eax, 4
sub eax, esi
shl eax, 2
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x74]
shl eax, 4
sub eax, dword [ebp - 0x74]
shl eax, 2
mov dword [ebp - 0xc], eax
call fcn.00516da0
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0053a230
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0053a230
mov esp, ebp
pop ebp
ret