Function at 0x4037a0
Capabilities:
Inspect load icon resource
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x525c30
mov eax, dword fs:[0]
push eax
sub esp, 0x4e0
mov eax, dword [0x589560]
xor eax, esp
mov dword [esp + 0x4d8], eax
push ebx
push esi
push edi
mov eax, dword [0x589560]
xor eax, esp
push eax
lea eax, [esp + 0x4f0]
mov dword fs:[0], eax
mov eax, dword [0x5b9ebc]
push 0x82
push eax
mov ebx, ecx
call dword [sym.imp.USER32.dll_LoadIconW]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov esi, 1
push esi
push 0x80
mov ecx, ebx
call eax
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [ebx + 0x3f0]
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], 0x101
mov dword [edi + 0x4c], esi
mov edx, dword [edi]
mov eax, dword [edx + 0x20]
push 0
push 0xae
mov ecx, edi
mov dword [ebx + 0x444], esi
call eax
push 0x128
call fcn.004fde48
mov esi, eax
add esp, 4
test esi, esi
je 0x40385d
mov ecx, esi
call fcn.0046a650
jmp 0x40385f
xor esi, esi
mov eax, 0x54b9a4
mov edx, esi
mov dword [esp + 0x14], esi
call fcn.0046a7f0
lea ecx, [esp + 0x14]
mov dword [esi + 0x124], 0
push ecx
lea esi, [edi + 0x10]
call fcn.00480c20
add dword [edi + 0x2c], 1
push 0x128
call fcn.004fde48
mov esi, eax
add esp, 4
test esi, esi
je 0x4038a6
mov ecx, esi
call fcn.0046a650
jmp 0x4038a8
xor esi, esi
mov eax, 0x54b9b0
mov edx, esi
mov dword [esp + 0x14], esi
call fcn.0046a7f0
lea edx, [esp + 0x14]
mov dword [esi + 0x124], 1
push edx
lea esi, [edi + 0x10]
call fcn.00480c20
add dword [edi + 0x2c], 1
push 0x128
call fcn.004fde48
mov esi, eax
add esp, 4
test esi, esi
je 0x4038ef
mov ecx, esi
call fcn.0046a650
jmp 0x4038f1
xor esi, esi
mov eax, 0x54b9bc
mov edx, esi
mov dword [esp + 0x14], esi
call fcn.0046a7f0
lea eax, [esp + 0x14]
mov dword [esi + 0x124], 2
push eax
lea esi, [edi + 0x10]
call fcn.00480c20
add dword [edi + 0x2c], 1
push 0x128
call fcn.004fde48
mov esi, eax
add esp, 4
test esi, esi
je 0x403938
mov ecx, esi
call fcn.0046a650
jmp 0x40393a
xor esi, esi
mov eax, 0x54b9c8
mov edx, esi
mov dword [esp + 0x14], esi
call fcn.0046a7f0
lea ecx, [esp + 0x14]
mov dword [esi + 0x124], 3
push ecx
lea esi, [edi + 0x10]
call fcn.00480c20
add dword [edi + 0x2c], 1
push 0x128
call fcn.004fde48
mov esi, eax
add esp, 4
test esi, esi
je 0x403981
mov ecx, esi
call fcn.0046a650
jmp 0x403983
xor esi, esi
mov eax, 0x54b9d4
mov edx, esi
mov dword [esp + 0x14], esi
call fcn.0046a7f0
lea edx, [esp + 0x14]
mov dword [esi + 0x124], 4
push edx
lea esi, [edi + 0x10]
call fcn.00480c20
add dword [edi + 0x2c], 1
push 0x128
call fcn.004fde48
mov esi, eax
add esp, 4
test esi, esi
je 0x4039ca
mov ecx, esi
call fcn.0046a650
jmp 0x4039cc
xor esi, esi
mov eax, 0x54b9dc
mov edx, esi
mov dword [esp + 0x14], esi
call fcn.0046a7f0
lea eax, [esp + 0x14]
mov dword [esi + 0x124], 5
push eax
lea esi, [edi + 0x10]
call fcn.00480c20
add dword [edi + 0x2c], 1
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
push 0x505
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 8]
mov ecx, edi
call eax
mov eax, edi
call fcn.0043f000
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea esi, [ebx + 0x4a0]
mov dword [esi + 0x44], eax
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x48], 0x102
mov edx, dword [esi]
push 6
mov dword [ebx + 0x4f4], eax
mov eax, dword [edx + 0x20]
push 0xae
mov ecx, esi
call eax
push 0x128
call fcn.004fde48
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
je 0x403a77
mov ecx, eax
call fcn.0046a650
mov edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
jmp 0x403a83
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x14]
mov eax, 0x54b9e8
mov dword [esp + 0x2c], edx
call fcn.0046a7f0
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x2c]
push edx
add esi, 0x10
mov dword [ecx + 0x124], 0
call fcn.00480c20
add dword [ebx + 0x4cc], 1
push 0x128
call fcn.004fde48
mov esi, eax
add esp, 4
test esi, esi
je 0x403acf
mov ecx, esi
call fcn.0046a650
jmp 0x403ad1
xor esi, esi
mov eax, 0x54b9f8
mov edx, esi
mov dword [esp + 0x14], esi
call fcn.0046a7f0
lea eax, [esp + 0x14]
mov dword [esi + 0x124], 1
push eax
lea esi, [ebx + 0x4b0]
call fcn.00480c20
add dword [ebx + 0x4cc], 1
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
lea esi, [ebx + 0x4a0]
mov ecx, ebx
call eax
push 0x506
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov eax, esi
call fcn.0043f000
push 0x3e8
call fcn.004fde48
add esp, 4
mov dword [esp + 0x18], eax
xor esi, esi
cmp eax, esi
mov dword [esp + 0x4f8], esi
je 0x403b5b
mov ecx, dword [ebx + 0x6c]
push ecx
call fcn.0042fae0
mov dword [esp + 0x34], eax
jmp 0x403b5f
mov dword [esp + 0x34], esi
push 0x228
mov dword [esp + 0x4fc], 0xffffffff
call fcn.004fde48
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x4f8], 1
je 0x403b99
mov edx, dword [ebx + 0x6c]
push edx
call fcn.0042cdb0
mov dword [esp + 0x3c], eax
jmp 0x403b9d
mov dword [esp + 0x3c], esi
push 0x1f4
mov dword [esp + 0x4fc], 0xffffffff
call fcn.004fde48
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x4f8], 2
je 0x403bd7
mov ecx, dword [ebx + 0x6c]
push ecx
call fcn.004187a0
mov dword [esp + 0x30], eax
jmp 0x403bdb
mov dword [esp + 0x30], esi
push 0x22c
mov dword [esp + 0x4fc], 0xffffffff
call fcn.004fde48
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x4f8], 3
je 0x403c15
mov edx, dword [ebx + 0x6c]
push edx
call fcn.004253d0
mov dword [esp + 0x38], eax
jmp 0x403c19
mov dword [esp + 0x38], esi
push 0x2bc
mov dword [esp + 0x4fc], 0xffffffff
call fcn.004fde48
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
test esi, esi
mov dword [esp + 0x4f8], 4
je 0x403c6b
push str.UserManager
call fcn.00407970
add esp, 4
mov ecx, eax
call fcn.004f2230
push eax
mov eax, dword [ebx + 0x6c]
push eax
push esi
call fcn.0040c710
mov dword [esp + 0x2c], eax
jmp 0x403c73
mov dword [esp + 0x2c], 0
or esi, 0xffffffff
push 0x1ec
mov dword [esp + 0x4fc], esi
call fcn.004fde48
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov dword [esp + 0x4f8], 5
je 0x403cac
mov ecx, dword [ebx + 0x6c]
push ecx
call fcn.0040f6f0
mov dword [esp + 0x14], eax
jmp 0x403cb4
mov dword [esp + 0x14], 0
mov dword [esp + 0x4f8], esi
mov edx, dword [0x5b9ebc]
mov eax, dword [ebx]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0x14]
mov ecx, ebx
call edx
mov esi, dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x38]
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], ecx
call esi
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
push eax
push 0x407e20
push ecx
push 0x91
push edx
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov eax, dword [0x5b9ebc]
mov edx, dword [ebx]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x38]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], edx
call esi
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push ecx
push 0x407e20
push edx
push 0x92
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov ecx, dword [0x5b9ebc]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x38]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], edx
call esi
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push ecx
push 0x407e20
push edx
push 0xa8
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov ecx, dword [0x5b9ebc]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 0x38]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], 8
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x2c], edx
call esi
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push ecx
push 0x407e20
push edx
push 0x94
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov ecx, dword [0x5b9ebc]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x38]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], edx
call esi
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push ecx
push 0x407e20
push edx
push 0x9d
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov ecx, dword [0x5b9ebc]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push ecx
push 0x407e20
push edx
push 0x97
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x18]
lea esi, [ebx + 0x550]
push edx
mov dword [esp + 0x1c], ecx
call fcn.00480c20
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], eax
call fcn.00480c20
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], edx
call fcn.00480c20
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], ecx
call fcn.00480c20
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], eax
call fcn.00480c20
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], edx
call fcn.00480c20
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x18]
add ecx, 0x3c
lea esi, [ebx + 0x588]
push edx
mov dword [esp + 0x1c], ecx
call fcn.00480c20
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
add eax, 0x3c
push ecx
mov dword [esp + 0x1c], eax
call fcn.00480c20
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x18]
add edx, 0x3c
push eax
mov dword [esp + 0x1c], edx
call fcn.00480c20
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x18]
add ecx, 0x3c
push edx
mov dword [esp + 0x1c], ecx
call fcn.00480c20
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
add eax, 0x3c
push ecx
mov dword [esp + 0x1c], eax
call fcn.00480c20
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x18]
add edx, 0x3c
push eax
mov dword [esp + 0x1c], edx
call fcn.00480c20
cmp byte [ebx + 0x3ec], 0
je 0x403fab
mov dword [ebx + 0x1e0], 2
jmp 0x403fdf
cmp byte [ebx + 0x3ed], 0
je 0x403fc0
mov dword [ebx + 0x1e0], 4
jmp 0x403fdf
cmp byte [ebx + 0x3ef], 0
je 0x403fd5
mov dword [ebx + 0x1e0], 3
jmp 0x403fdf
mov dword [ebx + 0x1e0], 0
mov ecx, dword [ebx + 0x1e0]
push 1
push ecx
mov esi, ebx
call fcn.004059a0
mov eax, dword [ebx + 0x1e0]
test eax, eax
jl 0x404007
cmp eax, dword [edi + 0x2c]
jge 0x404007
cmp dword [edi + 0x4c], 0
je 0x404007
mov dword [edi + 0x30], eax
lea esi, [ebx + 0x1e4]
push 0x54b914
push esi
call fcn.004fe715
add esp, 8
test eax, eax
je 0x404028
mov edx, esi
mov ecx, ebx
call fcn.00404810
lea esi, [ebx + 0x94c]
mov edx, str.IDB_COMBOSEARCH
test edx, 0xffff0000
mov dword [esi + 0x2c], 0xf8c89e
mov dword [esi + 0x30], 0xffffff
mov dword [esi + 0x34], 1
jne 0x404058
mov dword [esi + 0xb8], edx
jmp 0x404071
push str.IDB_COMBOSEARCH
lea edi, [esi + 0x38]
push 0x40
push edi
call fcn.004fe07f
add esp, 0xc
mov dword [esi + 0xb8], edi
lea edx, [ebx + 0xa08]
mov eax, 0x54ba28
call fcn.0046a7f0
mov edi, dword [0x5b9ebc]
mov dword [esi + 0x1e0], 0xbb2
mov dword [esi + 0x1e4], 0xbb3
mov dword [esi + 0x1e8], 0xbb4
mov dword [esi + 0x1ec], 0xbb5
mov eax, dword [ebx + 0x34]
push 0x507
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [ebx + 0x34]
push ecx
mov edx, edi
mov ecx, eax
mov edi, esi
call fcn.0043d3c0
push str.UserManager
call fcn.00407970
add esp, 4
lea ecx, [esp + 0x40]
mov edi, eax
call fcn.0046a650
lea eax, [edi + 0x820]
lea edx, [esp + 0x40]
call fcn.0046a7f0
cmp byte [esp + 0x15c], 0
lea eax, [esp + 0x4c]
jne 0x404106
mov eax, dword [esp + 0x48]
lea edi, [ebx + 0x828]
add eax, 4
mov edx, edi
call fcn.0046a7f0
cmp byte [esp + 0x15c], 0
mov dword [esp + 0x40], vtable.t_str.0
jne 0x40413d
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
cmp eax, edx
je 0x40413d
push eax
call fcn.004fdda1
add esp, 4
lea ecx, [esp + 0x40]
call fcn.0046a650
mov eax, str.searchhistory.ini
lea edx, [esp + 0x40]
call fcn.0046a7f0
mov dword [esp + 0x4f8], 0xffffffff
cmp byte [esp + 0x15c], 0
lea eax, [esp + 0x4c]
jne 0x404171
mov eax, dword [esp + 0x48]
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [edi + 4]
test eax, eax
je 0x404199
cmp byte [edi + 0x11c], 0
lea ecx, [edi + 0xc]
jne 0x40418e
mov ecx, dword [edi + 8]
movzx eax, word [ecx + eax*2 + 2]
cmp ax, 0x5c
je 0x4041a5
push 0x54ea84
mov eax, edi
call fcn.0046aa40
mov eax, dword [esp + 0x18]
push eax
mov eax, edi
call fcn.0046aa40
cmp byte [esp + 0x15c], 0
mov dword [esp + 0x40], vtable.t_str.0
jne 0x4041d8
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
cmp eax, ecx
je 0x4041d8
push eax
call fcn.004fdda1
add esp, 4
cmp byte [ebx + 0x944], 0
lea eax, [ebx + 0x834]
jne 0x4041ed
mov eax, dword [ebx + 0x830]
push 0
push 0x80
push 4
push 0
push 1
push 0x40000000
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
test edi, edi
je 0x404247
cmp edi, 0xffffffff
je 0x404247
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40423e
push 0
lea edx, [esp + 0x34]
push edx
push 0x2a
push str._config__r_ncounts0_r_n_quickinput__r_ncounts0
push edi
mov dword [esp + 0x44], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x404298
mov byte [esp + 0x1c], 0
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x4f8], 8
call fcn.00470820
push 0x54ba58
push 0x551604
push eax
call fcn.0046adf0
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.00470c90
lea ecx, [esp + 0x18]
mov dword [esp + 0x4f8], 0xffffffff
call fcn.004707c0
push ebx
call fcn.00406230
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
mov ecx, ebx
call edx
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x45d
push eax
call edi
mov edx, dword [ebx + 0x6e8]
lea ecx, [ebx + 0x6e8]
push eax
mov eax, dword [edx + 0x30]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
push 1
push eax
call edi
mov edx, dword [ebx + 0x730]
lea ecx, [ebx + 0x730]
push eax
mov eax, dword [edx + 0x30]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
push 2
push eax
call edi
mov edx, dword [ebx + 0x778]
lea ecx, [ebx + 0x778]
push eax
mov eax, dword [edx + 0x30]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
push 0x487
push eax
call edi
mov edx, dword [ebx + 0x7c0]
lea ecx, [ebx + 0x7c0]
push eax
mov eax, dword [edx + 0x30]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
push 0x509
push eax
call edi
mov ecx, dword [ebx + 0x6d8]
mov edi, eax
call fcn.00401d80
xor edi, edi
lea ecx, [esp + 0x174]
mov dword [esp + 0x168], edi
mov dword [esp + 0x16c], edi
mov dword [esp + 0x170], 0xffffffff
mov dword [esp + method.t_iconInformation.virtual_0], vtable.t_iconInformation.0
call fcn.0046a650
lea ecx, [esp + 0x298]
call fcn.0046a650
lea ecx, [esp + 0x3bc]
call fcn.0046a650
mov dword [esp + 0x4f8], 9
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
cmp dword [0x5b9f40], edi
jne 0x4043b4
push eax
call fcn.0043f410
cmp byte [0x5b9efd], 0
je 0x4043d2
mov eax, esi
call fcn.0043d8b0
mov ecx, dword [0x5aaecc]
push ecx
mov ecx, ebx
call fcn.00405a90
lea eax, [esp + 0x164]
call fcn.0043f070
mov eax, 1
mov ecx, dword [esp + 0x4f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4d8]
xor ecx, esp
call fcn.004fe05a
mov esp, ebp
pop ebp
ret 0x10