Function at 0x542b60
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e8
mov eax, dword [0x5bd254]
xor eax, ebp
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 0x114], eax
cmp dword [ebp + 8], 0
je 0x542ba8
lea edx, [ebp - 8]
push edx
push 5
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
call sym.convertifd.exe_JfFindResourceW
add esp, 0x10
mov dword [ebp - 0x34], eax
jmp 0x542bc1
lea edx, [ebp - 8]
push edx
push 5
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
call sym.convertifd.exe_JfFindResourceA
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x542bce
xor eax, eax
jmp 0x542f9d
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jne 0x542bf9
xor eax, eax
jmp 0x542f9d
push 0
push 0
push 0x31
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 8]
mov dword [ebp - 0x1e4], ecx
mov edx, dword [ebp - 0x28]
add edx, 0x12
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x118]
push eax
call sym.convertifd.exe_FindEndOfField
add esp, 4
add eax, 1
and eax, 0xfffffffe
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x118]
push ecx
call sym.convertifd.exe_FindEndOfField
add esp, 4
add eax, 1
and eax, 0xfffffffe
mov dword [ebp - 0x118], eax
mov edx, dword [ebp - 0x118]
push edx
call sym.convertifd.exe_FindEndOfField
add esp, 4
add eax, 1
and eax, 0xfffffffe
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
and ecx, 0x40
je 0x542cb3
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x10c]
add eax, 2
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x118]
push ecx
call sym.convertifd.exe_FindEndOfField
add esp, 4
mov dword [ebp - 0x118], eax
mov edx, dword [ebp - 0x118]
add edx, 3
and edx, 0xfffffffc
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x1e4]
mov ecx, dword [ebp - 0x1e4]
sub ecx, 1
mov dword [ebp - 0x1e4], ecx
test eax, eax
je 0x542f8e
mov edx, dword [ebp - 0x24]
add edx, 0x12
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
push eax
call sym.convertifd.exe_FindEndOfField
add esp, 4
add eax, 1
and eax, 0xfffffffe
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx]
cmp edx, 0xffff
jne 0x542d1f
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 2]
mov edx, dword [ecx*4 + 0x5bee30]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x110]
push eax
call sym.convertifd.exe_FindEndOfField
add esp, 4
add eax, 1
and eax, 0xfffffffe
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x24]
movzx edx, word [ecx + 0x10]
cmp edx, dword [ebp + 0x10]
jne 0x542d48
jmp 0x542f70
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0xa]
mov edx, dword [ebp - 0x24]
movsx eax, word [edx + 0xe]
add ecx, eax
push ecx
mov ecx, dword [ebp - 0x24]
movsx edx, word [ecx + 8]
mov eax, dword [ebp - 0x24]
movsx ecx, word [eax + 0xc]
add edx, ecx
push edx
mov edx, dword [ebp - 0x24]
movsx eax, word [edx + 0xa]
push eax
mov ecx, dword [ebp - 0x24]
movsx edx, word [ecx + 8]
push edx
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_SetRect]
lea ecx, [ebp - 0x18]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.USER32.dll_MapDialogRect]
lea eax, [ebp - 0x30]
push eax
call sym.convertifd.exe_IsAsianDBCSEnv
add esp, 4
test eax, eax
je 0x542e20
push 0
push 0
push 0xc8
lea ecx, [ebp - 0x100]
push ecx
mov edx, dword [ebp - 0x20]
push edx
call fcn.0052bb45
add esp, 4
push eax
mov eax, dword [ebp - 0x20]
push eax
push 0
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
mov byte [ebp + edx - 0x100], 0
push 0
push 0
push 0xc8
lea eax, [ebp - 0x1e0]
push eax
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.0052bb45
add esp, 4
push eax
mov edx, dword [ebp - 0x110]
push edx
push 0
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov byte [ebp + ecx - 0x1e0], 0
jmp 0x542e9b
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov cl, byte [eax]
mov byte [ebp + edx - 0x100], cl
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x100]
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x20]
add edx, 2
mov dword [ebp - 0x20], edx
test eax, eax
je 0x542e59
jmp 0x542e27
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x110]
mov dl, byte [ecx]
mov byte [ebp + eax - 0x1e0], dl
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x1e0]
mov edx, dword [ebp - 0x1c]
add edx, 1
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x110]
add eax, 2
mov dword [ebp - 0x110], eax
test ecx, ecx
je 0x542e9b
jmp 0x542e60
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx]
test edx, edx
jne 0x542eb1
mov dword [ebp - 0x1e8], 0
jmp 0x542ec0
mov eax, dword [ebp - 0x2c]
add eax, 4
and eax, 0xfffffffc
mov dword [ebp - 0x1e8], eax
mov ecx, dword [ebp - 0x1e8]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
push edx
lea eax, [ebp - 0x1e0]
push eax
lea ecx, [ebp - 0x100]
push ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
or eax, 4
push eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
jne 0x542f2e
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
xor eax, eax
jmp 0x542f9d
push 0
mov edx, dword [ebp - 0x104]
push edx
push 0x30
mov eax, dword [ebp - 0x108]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 3
push 0
push 0
push 0
push 0
mov ecx, dword [ebp - 0x114]
push ecx
mov edx, dword [ebp - 0x108]
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x2c]
add ecx, 4
and ecx, 0xfffffffc
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
lea ecx, [ecx + eax + 3]
and ecx, 0xfffffffc
mov dword [ebp - 0x24], ecx
jmp 0x542cc2
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, 1
mov ecx, dword [ebp - 0x38]
xor ecx, ebp
call fcn.00511a80
mov esp, ebp
pop ebp
ret