Function at 0x43a160
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Extract resource via kernel32 functions
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ba640
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb98
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
push ebx
push esi
xor esi, esi
mov byte [eax], 0
mov eax, dword [0x4eaec4]
push edi
mov byte [ecx], 0
mov dword [ebp - 0x68], vtable.TextStream.0
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], esi
cmp eax, 0xffffffff
je 0x43a1cb
lea edx, [ebp - 0x54]
push edx
push eax
mov dword [ebp - 0x58], eax
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
test eax, eax
jne 0x43a1cb
mov byte [ebp - 0x4e], al
mov dword [ebp - 0x68], vtable.TextMem.0
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x28], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x70], esi
mov byte [ebp - 4], 1
cmp dword [0x4e7e94], esi
jne 0x43a643
mov eax, dword [0x4e7ecc]
push 0xa
push str.C974C3B7677A402D93B047DA402587C7
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ecx, dword [0x4e7ecc]
push 0
mov esi, eax
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
lea edx, [ebp - 0x10]
push edx
mov edi, eax
mov eax, dword [0x4e7ecc]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ecx, edi
call fcn.004a1b60
mov esi, eax
lea edi, [esi + 1]
push edi
call dword [sym.imp.MSVCR100.dll_malloc]
add esp, 0xc
mov ebx, eax
push edi
mov dword [0x4e7eb4], ebx
call dword [sym.imp.MSVCR100.dll_malloc]
mov ecx, dword [ebp - 0x10]
add esp, 4
push esi
push ecx
mov edi, eax
push ebx
mov dword [0x4e7eb8], edi
call sub.MSVCR100.dll_memcpy
mov edx, dword [ebp - 0x10]
add esp, 0xc
push esi
push edx
push edi
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 0x10]
add esp, 0xc
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov byte [ebx + esi], 0
push edi
mov byte [edi + esi], 0
call dword [sym.imp.USER32.dll_CharLowerA]
mov edi, dword [sym.imp.MSVCR100.dll_malloc]
mov esi, 0x4e7e94
xor ebx, ebx
push 0x208
call edi
add esp, 4
mov dword [esi], eax
cmp eax, ebx
je 0x43a33a
add esi, 8
cmp esi, 0x4e7eb4
jl 0x43a2b3
mov eax, dword [0x4eacb0]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x43a2d6
sub eax, edx
sar eax, 1
mov dword [0x4e7e98], eax
cmp eax, 0xff
jae 0x43a377
mov edx, dword [0x4e7e94]
push 0x4bd2c4
push edx
call fcn.0045f830
mov edx, dword [0x4e7e94]
add esp, 8
mov dword [0x4e7e98], eax
mov ecx, 0x4d6ef4
lea edx, [edx + eax*2]
lea esp, [esp]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
cmp ax, bx
jne 0x43a320
add dword [0x4e7e98], 5
jmp 0x43a388
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], vtable.TextMem.0
cmp eax, ebx
je 0x43a35a
cmp byte [ebp - 0x2c], bl
je 0x43a357
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov dword [ebp - 0x34], ebx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], vtable.TextStream.0
cmp eax, ebx
je 0x43b29c
push 0x2000
push ebx
jmp 0x43b286
mov ecx, dword [0x4e7e94]
xor eax, eax
mov word [ecx], ax
mov dword [0x4e7e98], ebx
mov edx, dword [0x4e7e9c]
push 0x4bd2c4
push edx
call fcn.0045f2b0
add esp, 8
mov dword [0x4e7ea0], eax
cmp eax, 0xf4
jae 0x43a3d0
mov edx, dword [0x4e7e9c]
mov ecx, str.AutoHotkeyLib_
lea edx, [edx + eax*2]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
cmp ax, bx
jne 0x43a3b6
add dword [0x4e7ea0], 0x10
jmp 0x43a3e1
mov ecx, dword [0x4e7e9c]
xor eax, eax
mov word [ecx], ax
mov dword [0x4e7ea0], ebx
mov edx, dword [0x4e7ea4]
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x104
push edx
push 0
call edi
mov eax, dword [0x4e7ea4]
mov ebx, dword [sym.imp.MSVCR100.dll_wcsrchr]
push 0x5c
push eax
call ebx
mov edx, dword [0x4e7ea4]
add eax, 2
sub eax, edx
sar eax, 1
add esp, 8
mov dword [0x4e7ea8], eax
cmp eax, 0x100
jae 0x43a44a
mov ecx, str.Lib_
lea edx, [edx + eax*2]
jmp 0x43a430
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x43a430
add dword [0x4e7ea8], 4
jmp 0x43a455
xor ecx, ecx
mov word [edx], cx
mov dword [0x4e7ea8], ecx
mov esi, dword [0x4e7eac]
push 0x104
lea edx, [ebp - 0x990]
push edx
push 0
call edi
test esi, esi
je 0x43a48f
lea eax, [ebp - 0x990]
mov edx, esi
mov ecx, eax
sub edx, ecx
jmp 0x43a480
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x43a480
mov edx, dword [0x4e7eac]
push 0x5c
push edx
mov esi, str.Lib.lnk
call ebx
mov ecx, 2
sub ecx, esi
add esp, 8
add ecx, eax
jmp 0x43a4b0
movzx eax, word [esi]
mov word [esi + ecx], ax
add esi, 2
test ax, ax
jne 0x43a4b0
mov edx, dword [0x4e7eac]
push 0x5c
push edx
call ebx
xor ecx, ecx
add esp, 8
push ecx
mov word [eax + 0x10], cx
call dword [sym.imp.ole32.dll_CoInitialize]
lea edx, [ebp - 0x14]
push edx
push 0x4bba30
push 1
push 0
push 0x4bba40
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x43a5b7
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
lea edx, [ebp - 0x10]
push edx
push 0x4bba50
push eax
mov eax, dword [ecx]
call eax
test eax, eax
js 0x43a5ac
mov eax, dword [ebp - 0x10]
mov edx, dword [0x4e7eac]
mov ecx, dword [eax]
push 0
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
test eax, eax
js 0x43a5a1
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
push 2
push 0
push 0x104
lea edx, [ebp - 0x990]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov edx, dword [0x4e7eac]
lea ecx, [ebp - 0x990]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x43a554
lea eax, [ebp - 0x990]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43a570
sub eax, edx
mov edx, dword [0x4e7eac]
sar eax, 1
mov ecx, 0x4d6f40
lea edx, [edx + eax*2]
lea ecx, [ecx]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x43a590
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x4e7eac]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push eax
call edi
mov edx, eax
lea eax, [ebp - 0xba0]
call fcn.0049f5f0
push 0x44
push eax
call ebx
add esp, 8
test eax, eax
jne 0x43a5f6
mov edx, dword [0x4e7eac]
xor ecx, ecx
mov dword [0x4e7eb0], eax
mov word [edx], cx
jmp 0x43a614
mov eax, dword [0x4e7eac]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43a600
sub eax, edx
sar eax, 1
mov dword [0x4e7eb0], eax
mov esi, 0x4e7e94
xor ebx, ebx
jmp 0x43a620
mov eax, dword [esi]
push eax
call edi
cmp eax, 0xffffffff
je 0x43a62e
test al, 0x10
jne 0x43a638
mov ecx, dword [esi]
xor edx, edx
mov word [ecx], dx
mov dword [esi + 4], ebx
add esi, 8
cmp esi, 0x4e7eb4
jl 0x43a620
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x43a662
mov eax, dword [ebp + 0xc]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43a650
sub eax, edx
sar eax, 1
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
mov ebx, eax
mov dword [ebp - 0x74], 0
mov edi, 0x4e7e94
mov ecx, dword [edi]
cmp word [ecx], 0
je 0x43a779
mov eax, dword [edi + 4]
lea edx, [eax + ebx]
cmp edx, 0x100
jae 0x43a779
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x10]
lea esi, [ebx + ebx]
push esi
push ecx
push eax
call sub.MSVCR100.dll_memcpy
mov ecx, str..ahk
sub esi, ecx
add esp, 0xc
add esi, eax
movzx eax, word [ecx]
mov word [ecx + esi], ax
add ecx, 2
test ax, ax
jne 0x43a6b1
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x43a779
test al, 0x10
jne 0x43a779
mov eax, dword [ebp + 0x18]
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov byte [eax], 1
xor eax, eax
lea esi, [edx + ecx*2 - 2]
mov word [esi], ax
mov eax, dword [edi]
call fcn.0045b0d0
mov edx, dword [ebp + 8]
mov ecx, 0x5c
mov word [esi], cx
mov edx, dword [edx + 0xaf8]
test edx, edx
je 0x43a725
cmp byte [ebp + 0x1c], 0
je 0x43a725
mov eax, dword [edi]
push eax
push eax
mov eax, dword [edi + 4]
push eax
push str.Include___0.s_nIncludeAgain__s_n
call fcn.004299b0
add esp, 0x10
mov eax, dword [0x4e4b24]
mov esi, dword [eax + 0xb4]
push 0
mov dword [eax + 0xb4], 0
mov ecx, dword [edi]
push 0
push ecx
mov ecx, dword [ebp + 8]
call fcn.0042e2b0
test eax, eax
je 0x43aa8f
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [0x4e4b24]
push 0
push eax
push ecx
mov ecx, dword [ebp + 8]
mov dword [edx + 0xb4], esi
call fcn.0043b2c0
mov esi, eax
test esi, esi
jne 0x43aaf0
add edi, 8
cmp edi, 0x4e7eb4
jl 0x43a676
mov esi, dword [ebp + 0xc]
push 0x5f
push esi
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
test eax, eax
je 0x43a7df
sub eax, esi
sar eax, 1
mov ebx, eax
cmp ebx, 0xfe
jae 0x43a7df
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x278]
lea esi, [ebx + ebx]
push esi
push eax
mov ecx, edx
push ecx
mov dword [ebp - 0x10], edx
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 0x74]
inc eax
xor edx, edx
add esp, 0xc
mov word [ebp + esi - 0x278], dx
mov dword [ebp - 0x74], eax
cmp eax, 2
jl 0x43a671
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
add esi, esi
push esi
push ecx
lea edx, [ebp - 0x278]
push edx
call sub.MSVCR100.dll_memcpy
mov eax, dword [str..ahk]
mov ecx, dword [0x4d4884]
add esp, 0xc
mov dword [ebp + esi - 0x278], eax
push 0x4d6f8c
mov dword [ebp + esi - 0x274], ecx
mov ecx, dword [0x4e7ecc]
lea eax, [ebp - 0x278]
xor edx, edx
push eax
push ecx
mov word [ebp + esi - 0x270], dx
lea ebx, [edx + 1]
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x43ab4c
push 0x4d6f8c
lea edx, [ebp - 0x278]
push edx
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x43ab4c
mov edi, dword [ebp + 0xc]
push 0x5f
push edi
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
test eax, eax
je 0x43a8fb
sub eax, edi
sar eax, 1
cmp eax, 0xfe
jae 0x43a8fb
lea edi, [eax + eax]
mov eax, dword [ebp + 0xc]
push edi
push eax
lea ecx, [ebp - 0x278]
push ecx
call sub.MSVCR100.dll_memcpy
mov edx, dword [str..ahk]
mov eax, dword [0x4d4884]
add esp, 0xc
mov dword [ebp + edi - 0x278], edx
push 0x4d6f8c
mov dword [ebp + edi - 0x274], eax
mov eax, dword [0x4e7ecc]
lea edx, [ebp - 0x278]
push edx
xor ecx, ecx
push eax
mov word [ebp + edi - 0x270], cx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x43ab47
push 0x4d6f8c
lea ecx, [ebp - 0x278]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x43ab4c
push 0x3ea
lea ecx, [ebp - 0x76a]
mov eax, 0x2c
push 0
push ecx
mov dword [ebp - 0x780], 0x440023
mov dword [ebp - 0x77c], 0x6c006c
mov dword [ebp - 0x778], 0x6d0049
mov dword [ebp - 0x774], 0x6f0070
mov dword [ebp - 0x770], 0x740072
mov word [ebp - 0x76c], ax
call sub.MSVCR100.dll_memset
mov ebx, dword [ebp + 0xc]
add esp, 0xc
push esi
lea edx, [ebp - 0x76a]
push ebx
push edx
call sub.MSVCR100.dll_memcpy
add esp, 0xc
xor ecx, ecx
push 0x103
push ecx
lea edx, [ebp - 0x37f]
mov eax, 0x2c
push edx
mov word [ebp + esi - 0x76a], ax
mov word [ebp + esi - 0x768], cx
mov byte [ebp - 0x380], 0x5c
call sub.MSVCR100.dll_memset
mov edi, dword [ebp + 0x10]
add esp, 0xc
push 0
push 0
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x37f]
push eax
push edi
push ebx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [ebp - 0x380]
push ecx
mov byte [ebp + edi - 0x37f], 0x2c
mov byte [ebp + edi - 0x37e], 0
call dword [sym.imp.USER32.dll_CharLowerA]
mov eax, dword [0x4e7eb8]
lea edx, [ebp - 0x380]
push edx
push eax
call dword [sym.imp.MSVCR100.dll_strstr]
add esp, 8
mov dword [ebp + 0x18], eax
test eax, eax
je 0x43b24c
mov edx, dword [0x4e7eb4]
sub edx, dword [0x4e7eb8]
mov ebx, dword [sym.imp.MSVCR100.dll_strstr]
add eax, edx
mov ecx, 0x2c
push 0x4bbb48
push eax
mov word [ebp - 0x76c], cx
mov dword [ebp + 0x18], eax
call ebx
lea edi, [eax + 1]
push 0x4d6fa0
push edi
call ebx
mov ebx, eax
add esp, 0x10
mov eax, 1
sub eax, edi
add ebx, eax
push ebx
lea eax, [ebp + esi - 0x768]
push eax
push ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0xfde9
call edi
mov edx, dword [ebp + 0x18]
lea eax, [ebp + esi - 0x768]
lea ebx, [eax + ebx*2]
mov eax, dword [ebp + 0x10]
lea ecx, [esi + 2]
push ecx
push ebx
inc eax
push eax
inc edx
push edx
push 0
push 0xfde9
call edi
mov eax, dword [ebp + 0xc]
cmp word [esi + eax - 2], 0x5f
jne 0x43aeb9
add esi, ebx
mov dword [esi - 2], 0x2c
jmp 0x43aec6
mov eax, dword [0x4e4b24]
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0xb4], esi
mov eax, dword [ebp - 0x34]
mov byte [ecx], 1
mov dword [ebp - 0x68], vtable.TextMem.0
test eax, eax
je 0x43aac5
cmp byte [ebp - 0x2c], 0
je 0x43aabe
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], vtable.TextStream.0
test eax, eax
je 0x43b29c
push 0x2000
push 0
push eax
call sub.MSVCR100.dll_memset
mov edx, dword [ebp - 0x38]
add esp, 0xc
push edx
jmp 0x43b293
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], vtable.TextMem.0
test eax, eax
je 0x43ab15
cmp byte [ebp - 0x2c], 0
je 0x43ab0e
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], vtable.TextStream.0
test eax, eax
je 0x43ab40
push 0x2000
push 0
push eax
call sub.MSVCR100.dll_memset
mov eax, dword [ebp - 0x38]
add esp, 0xc
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov eax, esi
jmp 0x43b29e
mov ebx, 1
neg ebx
sbb ebx, ebx
and ebx, dword [0x4e7ecc]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x43a8fb
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x43a8fb
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x43a8fb
xor edi, edi
cmp dword [eax], 0x4034b50
jne 0x43ac2e
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edi
push edx
call fcn.004a1b60
mov edi, eax
add esp, 8
test edi, edi
je 0x43ac2e
lea eax, [edi + 0xa]
cmp eax, 0x400
ja 0x43abd3
call fcn.004b9db0
mov esi, esp
test esi, esi
je 0x43abec
mov dword [esi], 0xcccc
add esi, 8
jmp 0x43abec
push eax
call dword [sym.imp.MSVCR100.dll_malloc]
add esp, 4
test eax, eax
je 0x43abea
mov dword [eax], 0xdddd
add eax, 8
mov esi, eax
mov eax, dword [ebp - 0x14]
push edi
push eax
lea ebx, [edi + 2]
push esi
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x70], esi
call sub.MSVCR100.dll_memcpy
xor ecx, ecx
add esp, 0xc
mov word [esi + edi], cx
test edi, edi
je 0x43ac1b
mov edx, dword [ebp - 0x14]
push edi
push ecx
push edx
call sub.MSVCR100.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x18]
lea eax, [eax + eax + 8]
mov byte [ecx], 1
cmp eax, 0x400
ja 0x43ac58
call fcn.004b9db0
mov esi, esp
test esi, esi
je 0x43ac71
mov dword [esi], 0xcccc
add esi, 8
jmp 0x43ac71
push eax
call dword [sym.imp.MSVCR100.dll_malloc]
add esp, 4
test eax, eax
je 0x43ac6f
mov dword [eax], 0xdddd
add eax, 8
mov esi, eax
push 0xc
mov eax, 0xfde9
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x68]
call fcn.0049c090
mov edx, dword [ebp - 0x1c]
push 0
push edx
push esi
lea eax, [ebp - 0x68]
push eax
call fcn.0049c200
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0xaf8]
test edx, edx
je 0x43acd1
cmp byte [ebp + 0x1c], 0
je 0x43acd1
mov eax, esi
lea ebx, [eax + 2]
jmp 0x43acb0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43acb0
sub eax, ebx
sar eax, 1
push esi
push eax
push str._s_n
call fcn.004299b0
mov ebx, dword [ebp + 8]
add esp, 0xc
mov eax, dword [0x4e4b24]
mov ecx, dword [eax + 0xb4]
lea edx, [ebp - 0x278]
push edx
mov dword [ebp + 0x1c], ecx
push ebx
mov ecx, esi
mov dword [eax + 0xb4], 0
call fcn.0042bc50
test eax, eax
jne 0x43add0
test edi, edi
je 0x43ad12
push edi
push eax
mov eax, dword [ebp - 0x20]
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x1c]
add eax, 2
je 0x43ad26
push eax
push 0
push esi
call sub.MSVCR100.dll_memset
add esp, 0xc
mov ecx, dword [0x4e4b24]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x14]
mov edi, dword [sym.imp.MSVCR100.dll_free]
mov dword [ecx + 0xb4], edx
mov byte [eax], 1
test esi, esi
je 0x43ad56
add esi, 0xfffffff8
cmp dword [esi], 0xdddd
jne 0x43ad56
push esi
call edi
add esp, 4
mov esi, dword [ebp - 0x70]
test esi, esi
je 0x43ad82
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x43ad70
push eax
push 0
push esi
call sub.MSVCR100.dll_memset
add esp, 0xc
cmp dword [esi - 8], 0xdddd
lea eax, [esi - 8]
jne 0x43ad82
push eax
call edi
add esp, 4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], vtable.TextMem.0
test eax, eax
je 0x43ada3
cmp byte [ebp - 0x2c], 0
je 0x43ad9c
push eax
call edi
add esp, 4
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], vtable.TextStream.0
test eax, eax
je 0x43b29c
push 0x2000
push 0
push eax
call sub.MSVCR100.dll_memset
mov ecx, dword [ebp - 0x38]
add esp, 0xc
push ecx
call edi
jmp 0x43b299
test edi, edi
je 0x43ade3
mov edx, dword [ebp - 0x20]
push edi
push 0
push edx
call sub.MSVCR100.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x1c]
add eax, eax
je 0x43adf6
push eax
push 0
push esi
call sub.MSVCR100.dll_memset
add esp, 0xc
test esi, esi
je 0x43ae0f
add esi, 0xfffffff8
cmp dword [esi], 0xdddd
jne 0x43ae0f
push esi
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov eax, dword [0x4e4b24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x10]
push 0
mov dword [eax + 0xb4], ecx
mov eax, dword [ebp + 0xc]
push edx
push eax
mov ecx, ebx
call fcn.0043b2c0
mov esi, dword [ebp - 0x70]
mov edi, eax
test esi, esi
je 0x43ae64
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x43ae4a
push eax
push 0
push esi
call sub.MSVCR100.dll_memset
add esp, 0xc
cmp dword [esi - 8], 0xdddd
lea eax, [esi - 8]
jne 0x43ae64
mov esi, dword [sym.imp.MSVCR100.dll_free]
push eax
call esi
add esp, 4
jmp 0x43ae6a
mov esi, dword [sym.imp.MSVCR100.dll_free]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], vtable.TextMem.0
test eax, eax
je 0x43ae8b
cmp byte [ebp - 0x2c], 0
je 0x43ae84
push eax
call esi
add esp, 4
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], vtable.TextStream.0
test eax, eax
je 0x43aeb2
push 0x2000
push 0
push eax
call sub.MSVCR100.dll_memset
mov ecx, dword [ebp - 0x38]
add esp, 0xc
push ecx
call esi
add esp, 4
mov eax, edi
jmp 0x43b29e
mov eax, 0x2c
mov word [esi + ebx], ax
lea esi, [esi + ebx + 2]
mov ecx, dword [ebp + 0x18]
push 0x4d6fa4
push ecx
call dword [sym.imp.MSVCR100.dll_strstr]
mov cl, byte [eax + 1]
inc eax
add esp, 8
cmp cl, 0x5c
je 0x43b1cc
mov bl, 0x36
cmp cl, 0x55
je 0x43b1b4
cmp cl, 0x75
je 0x43b1b4
cmp cl, 0x7a
je 0x43b144
cmp cl, 0x5a
je 0x43b144
cmp cl, 0x73
je 0x43b124
cmp cl, 0x53
je 0x43b124
cmp cl, 0x74
je 0x43b104
cmp cl, 0x54
je 0x43b104
cmp cl, 0x61
je 0x43b0e7
cmp cl, 0x41
je 0x43b0e7
cmp cl, 0x77
je 0x43b0c4
cmp cl, 0x57
je 0x43b0c4
cmp cl, 0x78
je 0x43b0a7
cmp cl, 0x58
je 0x43b0a7
cmp cl, 0x69
je 0x43af6f
cmp cl, 0x49
jne 0x43af98
cmp byte [eax + 1], bl
jne 0x43af98
mov ecx, str.INT64
mov edi, esi
sub edi, ecx
lea ecx, [ecx]
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43af80
add esi, 0xa
inc eax
jmp 0x43b162
cmp cl, 0x69
je 0x43b067
cmp cl, 0x49
je 0x43b067
cmp cl, 0x68
je 0x43b047
cmp cl, 0x48
je 0x43b047
cmp cl, 0x63
je 0x43b027
cmp cl, 0x43
je 0x43b027
cmp cl, 0x66
je 0x43b004
cmp cl, 0x46
je 0x43b004
cmp cl, 0x64
je 0x43afde
cmp cl, 0x44
jne 0x43b162
mov ecx, str.DOUBLE
mov edi, esi
sub edi, ecx
jmp 0x43aff0
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43aff0
jmp 0x43b15f
mov ecx, str.FLOAT
mov edi, esi
sub edi, ecx
lea ecx, [ecx]
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b010
add esi, 0xa
jmp 0x43b162
mov ecx, str.CHAR
mov edi, esi
sub edi, ecx
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b030
add esi, 8
jmp 0x43b162
mov ecx, str.SHORT
mov edi, esi
sub edi, ecx
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b050
add esi, 0xa
jmp 0x43b162
cmp byte [eax + 1], 0x5c
jne 0x43b083
movzx ecx, word [esi - 2]
cmp ecx, 0x75
je 0x43b083
cmp ecx, 0x55
je 0x43b083
add esi, 0xfffffffe
jmp 0x43b162
mov ecx, 0x4d6fec
mov edi, esi
sub edi, ecx
lea esp, [esp]
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b090
add esi, 6
jmp 0x43b162
mov ecx, 0x4d6fa8
mov edi, esi
sub edi, ecx
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b0b0
jmp 0x43b15f
mov ecx, str.WSTR
mov edi, esi
sub edi, ecx
lea ecx, [ecx]
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b0d0
add esi, 8
jmp 0x43b162
mov ecx, str.ASTR
mov edi, esi
sub edi, ecx
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b0f0
add esi, 8
jmp 0x43b162
mov ecx, 0x4d6fc0
mov edi, esi
sub edi, ecx
lea ecx, [ecx]
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b110
add esi, 6
jmp 0x43b162
mov ecx, 0x4d6fb8
mov edi, esi
sub edi, ecx
lea ecx, [ecx]
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b130
add esi, 6
jmp 0x43b162
mov ecx, 0x4d6fa8
mov edi, esi
sub edi, ecx
lea ecx, [ecx]
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b150
add esi, 0xc
mov cl, byte [eax + 1]
cmp cl, 0x2a
je 0x43b174
cmp cl, 0x70
je 0x43b174
cmp cl, 0x50
jne 0x43b192
mov ecx, 0x4d4acc
mov edi, esi
sub edi, ecx
lea ecx, [ecx]
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b180
add esi, 2
mov ecx, 0x4d7028
mov edi, esi
sub edi, ecx
jmp 0x43b1a0
movzx edx, word [ecx]
mov word [ecx + edi], dx
add ecx, 2
test dx, dx
jne 0x43b1a0
add esi, 4
jmp 0x43b1bf
mov edx, 0x55
mov word [esi], dx
add esi, 2
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x5c
jne 0x43aee7
mov dword [esi - 4], 0
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0xaf8]
test edx, edx
je 0x43b214
cmp byte [ebp + 0x1c], 0
je 0x43b214
lea eax, [ebp - 0x780]
lea edi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43b1f0
sub eax, edi
lea ecx, [ebp - 0x780]
push ecx
sar eax, 1
push eax
push str._s_n
call fcn.004299b0
add esp, 0xc
lea edx, [ebp - 0x780]
push edx
mov eax, edx
push 0x2c
push eax
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
lea ecx, [eax + 2]
call fcn.004a0e50
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
add esp, 4
push 0
push ecx
push edx
mov ecx, esi
call fcn.0043b2c0
mov esi, eax
jmp 0x43aaf0
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], vtable.TextMem.0
test eax, eax
je 0x43b271
cmp byte [ebp - 0x2c], 0
je 0x43b26a
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], vtable.TextStream.0
test eax, eax
je 0x43b29c
push 0x2000
push 0
push eax
call sub.MSVCR100.dll_memset
mov ecx, dword [ebp - 0x38]
add esp, 0xc
push ecx
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
xor eax, eax
lea esp, [ebp - 0xbb0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18