Function at 0x4238c9
Capabilities:
Parse pe header

Disassembly:
push 0x38
push 0x42f188
call fcn.004254f8
xor ebx, ebx
cmp dword [0x43e09c], ebx
jne 0x4238e2
push ebx
push ebx
xor esi, esi
inc esi
push esi
push 0x42f184
push 0x100
push ebx
call dword [sym.imp.KERNEL32.dll_LCMapStringW]
test eax, eax
je 0x4238cd
mov dword [0x43e09c], esi
jmp 0x4238e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
jne 0x4238e2
mov dword [0x43e09c], 2
cmp dword [ebp + 0x14], ebx
jle 0x423902
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
dec ecx
cmp byte [eax], bl
je 0x4238fa
inc eax
cmp ecx, ebx
jne 0x4238ed
or ecx, 0xffffffff
or eax, 0xffffffff
sub eax, ecx
add dword [ebp + 0x14], eax
mov eax, dword [0x43e09c]
cmp eax, 2
je 0x423aec
cmp eax, ebx
je 0x423aec
cmp eax, 1
jne 0x423b1f
xor edi, edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
cmp dword [ebp + 0x20], ebx
jne 0x423939
mov eax, dword [0x43e03c]
mov dword [ebp + 0x20], eax
push ebx
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp + 0x24], ebx
setne al
lea eax, [eax*8 + 1]
push eax
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
mov dword [ebp - 0x30], esi
cmp esi, ebx
je 0x423b1f
mov dword [ebp - 4], 1
lea eax, [esi + esi]
add eax, 3
and eax, 0xfffffffc
call fcn.00420300
mov dword [ebp - 0x18], esp
mov eax, esp
mov dword [ebp - 0x1c], eax
or dword [ebp - 4], 0xffffffff
jmp 0x4239a5
cmp dword [ebp - 0x1c], ebx
jne 0x4239c6
lea eax, [esi + esi]
push eax
call fcn.004218c3
pop ecx
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x423b1f
mov dword [ebp - 0x38], 1
push esi
push dword [ebp - 0x1c]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 1
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x423ac9
push ebx
push ebx
push esi
push dword [ebp - 0x1c]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LCMapStringW]
mov edi, eax
mov dword [ebp - 0x2c], edi
cmp edi, ebx
je 0x423ac9
test byte [ebp + 0xd], 4
je 0x423a35
cmp dword [ebp + 0x1c], ebx
je 0x423ac9
cmp edi, dword [ebp + 0x1c]
jg 0x423ac9
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push esi
push dword [ebp - 0x1c]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LCMapStringW]
jmp 0x423ac9
mov dword [ebp - 4], 2
lea eax, [edi + edi]
add eax, 3
and eax, 0xfffffffc
call fcn.00420300
mov dword [ebp - 0x18], esp
mov eax, esp
mov dword [ebp - 0x20], eax
or dword [ebp - 4], 0xffffffff
jmp 0x423a73
cmp dword [ebp - 0x20], ebx
jne 0x423a90
lea eax, [edi + edi]
push eax
call fcn.004218c3
pop ecx
mov dword [ebp - 0x20], eax
cmp eax, ebx
je 0x423ac9
mov dword [ebp - 0x34], 1
push edi
push dword [ebp - 0x20]
push esi
push dword [ebp - 0x1c]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LCMapStringW]
test eax, eax
je 0x423ac9
push ebx
push ebx
cmp dword [ebp + 0x1c], ebx
jne 0x423ab3
push ebx
push ebx
jmp 0x423ab9
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
push dword [ebp - 0x20]
push ebx
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
cmp dword [ebp - 0x34], ebx
je 0x423ad7
push dword [ebp - 0x20]
call fcn.0041efe8
pop ecx
cmp dword [ebp - 0x38], ebx
je 0x423ae5
push dword [ebp - 0x1c]
call fcn.0041efe8
pop ecx
mov eax, edi
jmp 0x423c47
mov dword [ebp - 0x28], ebx
xor edi, edi
mov dword [ebp - 0x3c], ebx
cmp dword [ebp + 8], ebx
jne 0x423b01
mov eax, dword [0x43e02c]
mov dword [ebp + 8], eax
cmp dword [ebp + 0x20], ebx
jne 0x423b0e
mov eax, dword [0x43e03c]
mov dword [ebp + 0x20], eax
push dword [ebp + 8]
call fcn.0042a0bd
pop ecx
mov dword [ebp - 0x40], eax
cmp eax, 0xffffffff
jne 0x423b26
xor eax, eax
jmp 0x423c47
cmp eax, dword [ebp + 0x20]
je 0x423c1d
push ebx
push ebx
lea ecx, [ebp + 0x14]
push ecx
push dword [ebp + 0x10]
push eax
push dword [ebp + 0x20]
call fcn.0042a100
add esp, 0x18
mov dword [ebp - 0x28], eax
cmp eax, ebx
je 0x423b1f
push ebx
push ebx
push dword [ebp + 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LCMapStringA]
mov esi, eax
mov dword [ebp - 0x24], esi
cmp esi, ebx
je 0x423c0c
mov dword [ebp - 4], ebx
add eax, 3
and eax, 0xfffffffc
call fcn.00420300
mov dword [ebp - 0x18], esp
mov edi, esp
mov dword [ebp - 0x44], edi
push esi
push ebx
push edi
call fcn.00420340
add esp, 0xc
jmp 0x423b9d
or dword [ebp - 4], 0xffffffff
cmp edi, ebx
jne 0x423bc8
push dword [ebp - 0x24]
call fcn.004218c3
pop ecx
mov edi, eax
cmp edi, ebx
je 0x423be5
push dword [ebp - 0x24]
push ebx
push edi
call fcn.00420340
add esp, 0xc
mov dword [ebp - 0x3c], 1
push dword [ebp - 0x24]
push edi
push dword [ebp + 0x14]
push dword [ebp - 0x28]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LCMapStringA]
mov dword [ebp - 0x24], eax
cmp eax, ebx
jne 0x423be9
xor esi, esi
jmp 0x423c0f
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
lea eax, [ebp - 0x24]
push eax
push edi
push dword [ebp + 0x20]
push dword [ebp - 0x40]
call fcn.0042a100
add esp, 0x18
mov esi, eax
neg esi
sbb esi, esi
neg esi
jmp 0x423c0f
mov esi, dword [ebp - 0x48]
cmp dword [ebp - 0x3c], ebx
je 0x423c37
push edi
call fcn.0041efe8
pop ecx
jmp 0x423c37
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LCMapStringA]
mov esi, eax
cmp dword [ebp - 0x28], ebx
je 0x423c45
push dword [ebp - 0x28]
call fcn.0041efe8
pop ecx
mov eax, esi
lea esp, [ebp - 0x54]
call fcn.00425533
ret