Function at 0x5193f0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
mov eax, dword [0x601018]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + 1]
movzx ecx, byte [ecx]
push ebx
push esi
xor esi, esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x110], eax
cmp ecx, 0xf0
jl 0x519440
movzx ebx, byte [eax]
and ecx, 0xf
shl ecx, 8
add ecx, ebx
inc eax
mov dword [ebp - 0x110], eax
cmp ecx, dword [edx + 0x400]
jge 0x5197f4
cmp ecx, esi
jl 0x5197f4
mov esi, dword [edx + ecx*4 + 0x404]
jmp 0x519460
mov dl, byte [esi]
cmp dl, 0x5c
jne 0x519483
movsx ecx, byte [esi + 1]
mov dl, byte [esi + 2]
lea ecx, [ecx + ecx*4 - 0xf0]
add ecx, ecx
add esi, 2
movsx ebx, dl
lea ecx, [ecx + ebx - 0x30]
jmp 0x519486
movsx ecx, dl
cmp ecx, 0xd
je 0x5197ee
test ecx, ecx
je 0x5197b1
cmp ecx, 0x60
jne 0x5197a8
mov al, byte [esi + 1]
inc esi
xor ecx, ecx
mov edx, esi
mov dword [ebp - 0x10c], ecx
cmp al, 0x60
je 0x5194e2
movsx eax, al
sub eax, 0x23
inc esi
cmp eax, 0x1d
ja case.0x5194c5.36
movzx eax, byte [eax + 0x51983c]
jmp dword [eax*4 + 0x51982c]
inc ecx
jmp case.0x5194c5.36
movsx ecx, byte [esi]
sub ecx, 0x30
inc esi
mov al, byte [esi]
cmp al, 0x60
jne 0x5194b2
mov dword [ebp - 0x10c], ecx
mov esi, edx
test ecx, ecx
je 0x519577
mov ecx, dword [ebp - 0x110]
call fcn.00503ae0
mov ebx, eax
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax*4 + 0x5bcef0]
and ebx, dword [eax*8 + 0x5bcf20]
and edx, dword [eax*8 + 0x5bcf24]
add dword [ebp - 0x110], ecx
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], eax
lea esp, [esp]
dec dword [ebp - 0x10c]
push 0
push 0xa
push edx
push ebx
call fcn.00596e70
mov dword [ebp - 0x124], edx
mov dl, al
add dl, dl
add dl, dl
lea ecx, [edx + eax]
mov edx, dword [ebp - 0x124]
add cl, cl
sub bl, cl
mov ecx, dword [ebp - 0x114]
add bl, 0x30
mov byte [ecx], bl
inc ecx
cmp dword [ebp - 0x10c], 0
mov dword [ebp - 0x114], ecx
mov ebx, eax
jne 0x519530
mov dword [ebp - 0x10c], 1
mov ecx, dword [ebp - 0x114]
mov edx, dword [ebp - 0x110]
lea ecx, [ecx]
mov al, byte [esi]
movsx ebx, al
add ebx, 0xffffffdd
cmp ebx, 0x5b
ja case.0x5195a8.37
movzx ebx, byte [ebx + 0x51988c]
jmp dword [ebx*4 + 0x51985c]
mov al, byte [edx]
mov byte [edi], al
inc edx
inc esi
inc edi
cmp dword [ebp - 0x118], 0
mov dword [ebp - 0x110], edx
jne 0x519590
cmp byte [edx - 1], 0xd
jne 0x519590
mov dword [ebp - 0x118], edi
jmp 0x519590
inc esi
cmp dword [ebp - 0x10c], 0
je 0x5195e3
mov byte [edi], 0x20
inc edi
jmp 0x519590
mov byte [edi], 0x2c
inc edi
jmp 0x519590
mov al, byte [ecx - 1]
dec ecx
inc esi
mov dword [ebp - 0x114], ecx
cmp al, 0x30
jne 0x519607
cmp dword [ebp - 0x10c], 0
je 0x519607
mov byte [edi], 0x20
inc edi
jmp 0x519590
mov byte [edi], al
mov dword [ebp - 0x10c], 0
inc edi
jmp 0x519590
movsx ebx, byte [esi + 1]
dec ecx
lea eax, [ebp - 0x108]
sub ebx, 0x30
add esi, 2
mov dword [ebp - 0x114], ecx
cmp ecx, eax
jb 0x519663
cmp dword [ebp - 0x10c], 0
je 0x519642
cmp byte [ecx], 0x30
je 0x519652
mov al, byte [ecx]
dec ebx
mov byte [edi], al
inc edi
mov dword [ebp - 0x10c], 0
dec ecx
lea eax, [ebp - 0x108]
cmp ecx, eax
jae 0x519634
mov dword [ebp - 0x114], ecx
test ebx, ebx
je 0x519590
push ebx
push 0x20
push edi
call sub.MSVCR100.dll_memset
add esp, 0xc
add edi, ebx
jmp 0x519581
dec ecx
lea eax, [ebp - 0x108]
add esi, 2
mov dword [ebp - 0x114], ecx
cmp ecx, eax
jb 0x519590
mov eax, dword [ebp - 0x10c]
test eax, eax
je 0x5196a5
cmp byte [ecx], 0x30
je 0x5196ac
mov al, byte [ecx]
mov byte [edi], al
inc edi
xor eax, eax
dec ecx
lea ebx, [ebp - 0x108]
cmp ecx, ebx
jae 0x51969c
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], eax
jmp 0x519590
mov al, byte [ecx - 1]
dec ecx
mov dword [ebp - 0x114], ecx
cmp al, 0x30
je case.0x5195a8.37
mov dword [ebp - 0x10c], 0
mov byte [edi], al
inc edi
inc esi
jmp 0x519590
mov al, byte [edx]
inc esi
test al, al
je 0x5196fa
inc edx
mov byte [edi], al
mov al, byte [edx]
inc edi
test al, al
jne 0x5196f0
inc edx
mov dword [ebp - 0x110], edx
jmp 0x519590
mov al, byte [esi + 1]
inc esi
cmp al, 0x60
jne 0x519717
mov byte [ebp - 0x11c], 0x20
jmp 0x51971e
mov byte [ebp - 0x11c], al
inc esi
movzx ebx, byte [edx]
inc edx
mov dword [ebp - 0x110], edx
test ebx, ebx
je 0x519590
mov ecx, dword [ebp - 0x11c]
push ebx
push ecx
push edi
call sub.MSVCR100.dll_memset
add esp, 0xc
add edi, ebx
jmp 0x519581
movzx eax, byte [edx]
inc edx
add esi, 2
mov dword [ebp - 0x110], edx
test eax, eax
je 0x519771
lea esp, [esp]
dec eax
cmp byte [esi], 0x7c
je 0x51976c
inc esi
cmp byte [esi], 0x7c
jne 0x519766
inc esi
test eax, eax
jne 0x519760
mov al, byte [esi]
cmp al, 0x7c
je 0x519785
cmp al, 0x29
je 0x519796
inc esi
mov byte [edi], al
mov al, byte [esi]
inc edi
cmp al, 0x7c
jne 0x519777
cmp byte [esi], 0x29
je 0x519796
lea ebx, [ebx]
inc esi
cmp byte [esi], 0x29
jne 0x519790
inc esi
jmp 0x519590
mov eax, dword [ebp - 0x110]
inc esi
jmp 0x519460
mov byte [edi], dl
inc edi
inc esi
jmp 0x519460
mov cl, byte [eax]
cmp cl, 0xd
je 0x5197c3
inc eax
mov byte [edi], cl
mov cl, byte [eax]
inc edi
cmp cl, 0xd
jne 0x5197b8
mov dl, byte [eax]
mov byte [edi], dl
inc edi
inc eax
mov ecx, dword [ebp - 0x118]
test ecx, ecx
je 0x5197d5
mov edi, ecx
mov ecx, dword [ebp - 4]
sub eax, dword [ebp + 0xc]
mov byte [edi], 0
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00596083
mov esp, ebp
pop ebp
ret 8
mov byte [edi], 0xd
inc edi
jmp 0x5197c9
cmp dword [0x603c14], esi
je 0x519811
push 0x30
push str.Fatal_Error
push str.Template_file_mismatch__fatal_error__aborting
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x519823
push str.ERROR_26512:_template_file_mismatch__fatal_error__aborting
mov ecx, 0x610240
call fcn.00504670
add esp, 4
push 0x7e
call dword [sym.imp.MSVCR100.dll_exit]
nop
int3