Function at 0x1003a561
Capabilities:
Get file version info
Terminate process

Disassembly:
push ebp
lea ebp, [esp - 0xc8]
sub esp, 0x148
mov eax, dword [0x101b7f10]
push ebx
xor ebx, ebx
push 0x248
mov dword [ebp + 0xc4], eax
mov dword [0x10a0c310], ebx
mov dword [0x10a0c230], ebx
call fcn.101589ff
cmp eax, ebx
pop ecx
je 0x1003a5a1
mov ecx, eax
call fcn.1014238d
jmp 0x1003a5a3
xor eax, eax
mov dword [0x10a0c230], eax
call fcn.1013de8d
push 1
mov ecx, 0x10a0d0c0
call fcn.1013e978
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x74]
push eax
mov byte [0x10a0c314], bl
call fcn.10001141
xor eax, eax
cmp dword [ebp - 0x74], ebx
pop ecx
setne al
pop ecx
mov dword [0x10a06a18], eax
mov eax, dword [ebp - 0x70]
cmp eax, ebx
mov dword [0x10a069f4], eax
jne 0x1003a5ee
push 0x1018476c
jmp 0x1003a617
cmp eax, 1
jne 0x1003a5fa
push 0x10184768
jmp 0x1003a617
cmp eax, 4
jne 0x1003a606
push str.japanese
jmp 0x1003a617
cmp eax, 5
jne 0x1003a612
push str.chinese_traditional
jmp 0x1003a617
push str.English
push ebx
call fcn.1015d20f
pop ecx
pop ecx
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x60]
push eax
push str._s__s
push dword [ebp + 0xd8]
mov dword [0x10a0c434], ebx
mov byte [0x10a0c438], bl
call fcn.10159525
lea eax, [ebp + 0x60]
push eax
call fcn.1015b138
add esp, 0x14
test eax, eax
jne 0x1003a66c
push 0x30
push str.Warning__
push str.You_must_the_game_with_Tantra.exe.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
call fcn.1015c832
push esi
push edi
lea eax, [ebp - 0x7c]
push eax
mov esi, str.HTLauncher.exe
push esi
call sub.VERSION.dll_GetFileVersionInfoSizeA
push eax
mov dword [ebp - 0x78], eax
call fcn.10158ce7
mov edi, eax
cmp edi, ebx
pop ecx
je 0x1003a6fd
push edi
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
push esi
call sub.VERSION.dll_GetFileVersionInfoA
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x6c]
push eax
push 0x10181e58
push edi
call sub.VERSION.dll_VerQueryValueA
mov eax, dword [ebp - 0x6c]
movzx ecx, word [eax + 0xc]
push ecx
movzx ecx, word [eax + 0xe]
push ecx
movzx ecx, word [eax + 8]
movzx eax, word [eax + 0xa]
push ecx
push eax
lea eax, [ebp - 4]
push str._u._u._u._u
push eax
call fcn.10159219
push edi
call fcn.10158cf9
push 0x10a069de
push 0x10a069dc
push 0x10a069da
push 0x10a069d8
lea eax, [ebp - 4]
push str._d._d._d._d
push eax
call fcn.10159525
add esp, 0x34
call fcn.1013434d
push 0x4b4
call fcn.101589ff
cmp eax, ebx
pop ecx
je 0x1003a71a
mov ecx, eax
call fcn.1005547f
jmp 0x1003a71c
xor eax, eax
push dword [ebp + 0xdc]
mov ecx, eax
push dword [ebp + 0xd8]
mov dword [0x10a0c348], eax
push dword [ebp + 0xd4]
push dword [ebp + 0xd0]
call fcn.100555d0
push 0xdae8
mov esi, eax
mov dword [0x10a0c234], ebx
call fcn.101589ff
cmp eax, ebx
pop ecx
je 0x1003a760
mov ecx, eax
call fcn.1013d96f
jmp 0x1003a762
xor eax, eax
mov ecx, eax
mov dword [0x10a0c234], eax
call fcn.10039d9b
cmp esi, ebx
jne 0x1003a7e8
mov ecx, dword [0x10a0c348]
call fcn.10055725
mov edi, 0x3de
jmp 0x1003a7c6
cmp ecx, ebx
je 0x1003a79c
mov esi, ecx
call fcn.1014788a
push esi
call fcn.1015a314
pop ecx
mov dword [0x10a0c35c], ebx
mov ecx, dword [0x10a0c348]
call fcn.10134cb3
mov ecx, dword [0x10a0c348]
call fcn.100558a9
cmp byte [0x10a069e1], 3
je 0x1003a7e8
mov ecx, dword [0x10a0c348]
call fcn.10055725
cmp eax, edi
mov ecx, dword [0x10a0c35c]
jne 0x1003a784
cmp ecx, ebx
je 0x1003a7e8
mov esi, ecx
call fcn.1014788a
push esi
call fcn.1015a314
pop ecx
mov dword [0x10a0c35c], ebx
mov ecx, dword [0x10a0c234]
cmp ecx, ebx
je 0x1003a806
mov esi, ecx
call fcn.10039d9b
push esi
call fcn.1015a314
pop ecx
mov dword [0x10a0c234], ebx
mov ecx, dword [0x10a0c348]
call fcn.100569a0
mov ecx, dword [0x10a0c348]
cmp ecx, ebx
pop edi
pop esi
je 0x1003a829
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x10a0c348], ebx
mov ecx, dword [ebp + 0xc4]
xor eax, eax
pop ebx
call fcn.1015901e
add ebp, 0xc8
leave
ret 0x10