Function at 0x564a20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x579745
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
push ebx
push esi
push edi
mov eax, dword [0x5d52e0]
xor eax, esp
push eax
lea eax, [esp + 0xd0]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, ebx
shr eax, 8
and eax, 0xff
add eax, 0xffffff9b
cmp eax, 0x11
ja case.0x564a6a.110
jmp dword [eax*4 + 0x56574c]
and ebx, 0xffff98ff
or ebx, 0x9800
jmp case.0x564a6a.110
and ebx, 0xffffc9ff
or ebx, 0xc900
jmp case.0x564a6a.110
and ebx, 0xffffcaff
or ebx, 0xca00
jmp case.0x564a6a.110
and ebx, 0xffffcbff
or ebx, 0xcb00
jmp case.0x564a6a.110
and ebx, 0xffffe7ff
or ebx, 0xe700
jmp case.0x564a6a.110
and ebx, 0xffffe8ff
or ebx, 0xe800
jmp case.0x564a6a.110
and ebx, 0xffffe9ff
or ebx, 0xe900
jmp case.0x564a6a.110
and ebx, 0xfffff2ff
or ebx, 0xf200
jmp case.0x564a6a.110
and ebx, 0xfffff3ff
or ebx, 0xf300
jmp case.0x564a6a.110
and ebx, 0xffff99ff
or ebx, 0x9900
jmp case.0x564a6a.110
and ebx, 0xfffff4ff
or ebx, 0xf400
mov eax, ebx
shr eax, 8
and eax, 0xff
mov dword [esp + 0x14], eax
add eax, 0xfffffff6
cmp eax, 0xee
ja case.0x564b2b.12
movzx ecx, byte [eax + 0x565868]
jmp dword [ecx*4 + 0x565794]
mov esi, 0x233d
lea eax, [esi - 0x2343]
mov dword [esp + 0x28], 0
cmp eax, 0x22
ja case.0x564b55.9028
movzx edx, byte [eax + 0x565960]
jmp dword [edx*4 + 0x565958]
mov esi, 0x2349
jmp 0x564b37
mov esi, 0x233e
jmp 0x564b37
mov esi, 0x233f
jmp 0x564b37
mov esi, 0x2340
jmp 0x564b37
mov esi, 0x2341
jmp 0x564b37
mov esi, 0x2342
jmp 0x564b37
mov esi, 0x2343
jmp 0x564b37
mov esi, 0x2344
jmp 0x564b37
mov esi, 0x2345
jmp 0x564b37
mov esi, 0x234e
jmp 0x564b37
mov esi, 0x2346
jmp 0x564b37
mov esi, 0x2347
jmp 0x564b37
mov esi, 0x2348
jmp 0x564b37
mov esi, 0x234a
jmp 0x564b37
mov esi, 0x234b
jmp 0x564b37
mov esi, 0x234c
jmp 0x564b37
mov esi, 0x234d
jmp 0x564b37
mov esi, 0x234f
jmp 0x564b37
mov esi, 0x2350
jmp 0x564b37
mov esi, 0x2351
jmp 0x564b37
mov esi, 0x2352
jmp 0x564b37
mov esi, 0x2353
jmp 0x564b37
mov esi, 0x2354
jmp 0x564b37
mov esi, 0x2355
jmp 0x564b37
mov esi, 0x2356
jmp 0x564b37
mov esi, 0x2357
jmp 0x564b37
mov esi, 0x2358
jmp 0x564b37
mov esi, 0x2359
jmp 0x564b37
mov esi, 0x235a
jmp 0x564b37
mov esi, 0x235b
jmp 0x564b37
mov esi, 0x235c
jmp 0x564b37
mov esi, 0x235d
jmp 0x564b37
mov esi, 0x235e
jmp 0x564b37
mov esi, 0x235f
jmp 0x564b37
mov esi, 0x2360
jmp 0x564b37
mov esi, 0x2361
jmp 0x564b37
mov esi, 0x2362
jmp 0x564b37
mov esi, 0x2363
jmp 0x564b37
mov esi, 0x2364
jmp 0x564b37
mov esi, 0x2365
jmp 0x564b37
mov esi, 0x2366
jmp 0x564b37
mov esi, 0x2367
jmp 0x564b37
mov esi, 0x2368
jmp 0x564b37
mov esi, 0x2369
jmp 0x564b37
mov esi, 0x236a
jmp 0x564b37
mov esi, 0x236b
jmp 0x564b37
mov esi, 0x236c
jmp 0x564b37
mov esi, 0x236d
jmp 0x564b37
mov esi, 0x247c
jmp 0x564b37
mov esi, 0x247d
jmp 0x564b37
mov eax, 1
mov ecx, dword [esp + 0xd0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x28], 1
push 0
mov ecx, esi
lea edi, [esp + 0x30]
call fcn.00530ca0
add esp, 4
lea ecx, [esi + 0x31]
push 0
lea edi, [esp + 0x20]
mov dword [esp + 0xdc], 0
call fcn.00530ca0
add esp, 4
mov byte [esp + 0xd8], 1
cmp dword [esp + 0x14], 0x96
jbe 0x564e27
cmp dword [esp + 0x28], 0
jne 0x564e27
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x564db3
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
movzx ecx, bl
push ecx
mov byte [esp + 0xdc], 2
mov edx, dword [esp + 0x18]
mov eax, ebx
push edx
shr eax, 0x10
and eax, 0xff
push eax
lea ecx, [esp + 0x24]
push str._n_n__Code:_u__u__u
push ecx
call fcn.00401cf0
mov edi, dword [esp + 0x2c]
mov eax, dword [edi - 0xc]
add esp, 0x14
push eax
push edi
lea ecx, [esp + 0x24]
call fcn.00401790
lea eax, [edi - 0x10]
mov byte [esp + 0xd8], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x564e27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 0xffffdcb5
cmp esi, 0x21
ja case.0x564e3d.9036
movzx ecx, byte [esi + 0x5659a8]
jmp dword [ecx*4 + 0x565984]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
push eax
call fcn.00401a10
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x14], edi
lea esi, [esp + 0x58]
mov byte [esp + 0xd8], 3
call fcn.0054e750
mov byte [esp + 0xd8], 4
mov edx, dword [eax]
push edx
lea eax, [esp + 0x20]
push edi
push eax
call fcn.00401cf0
add esp, 0xc
mov ecx, esi
call fcn.00404b10
lea ecx, [esp + 0x14]
jmp 0x5653e4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
push eax
call fcn.00401a10
add eax, 0x10
add esp, 4
mov dword [esp + 0x14], eax
push 0x104
push eax
lea ecx, [esp + 0x24]
push ecx
mov byte [esp + 0xe4], 5
call fcn.00401cf0
add esp, 0xc
lea ecx, [esp + 0x14]
jmp 0x5653e4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
push eax
call fcn.00401a10
add eax, 0x10
add esp, 4
mov dword [esp + 0x14], eax
push 0x40
push eax
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0xe4], 6
call fcn.00401cf0
add esp, 0xc
lea ecx, [esp + 0x14]
jmp 0x5653e4
push 0x1e240
mov edx, 0x50000
call fcn.0054e0a0
mov esi, eax
test esi, esi
jns 0x564f24
call fcn.0052bc20
mov esi, eax
push esi
lea eax, [esp + 0x1c]
push 0x4b00
push eax
call fcn.0052ca60
add esp, 0xc
push esi
lea ecx, [esp + 0x18]
push 0x27d80
push ecx
mov byte [esp + 0xe4], 7
call fcn.0052ca60
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.004011e0
sub esi, 0x1235
mov bl, 9
mov byte [esp + 0xd8], bl
je 0x564f97
dec esi
jne 0x564fca
push esi
mov ecx, 0x23b4
lea edi, [esp + 0x4c]
call fcn.00530ca0
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xdc], 0xa
call fcn.004015b0
mov ecx, edi
jmp 0x564fbe
push 0
mov ecx, 0x23af
lea edi, [esp + 0x50]
call fcn.00530ca0
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xdc], 0xb
call fcn.004015b0
mov ecx, edi
mov byte [esp + 0xd8], bl
call fcn.00404b10
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
push eax
call fcn.00401a10
lea esi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x24], esi
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov byte [esp + 0xe4], 0xc
call fcn.00401350
add esp, 0xc
mov edi, eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0xe4], 0xd
call fcn.00401350
add esp, 0xc
mov byte [esp + 0xd8], 0xe
mov edx, dword [edi]
mov eax, dword [eax]
push edx
push eax
lea ecx, [esp + 0x24]
push esi
push ecx
call fcn.00401cf0
add esp, 0x10
lea ecx, [esp + 0x44]
call fcn.00404b10
lea ecx, [esp + 0x54]
call fcn.00404b10
lea ecx, [esp + 0x24]
call fcn.00404b10
lea ecx, [esp + 0x20]
call fcn.00404b10
jmp 0x5653d7
push 0x1e240
mov edx, 0x50000
call fcn.0054e0a0
mov esi, eax
test esi, esi
jns 0x565082
call fcn.0052bc20
mov esi, eax
push esi
lea edx, [esp + 0x1c]
push 0x4b00
push edx
call fcn.0052ca60
add esp, 0xc
push esi
lea eax, [esp + 0x18]
push 0x36cf8
push eax
mov byte [esp + 0xe4], 0xf
call fcn.0052ca60
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.004011e0
sub esi, 0x1235
mov byte [esp + 0xd8], 0x11
je 0x5650f4
dec esi
jne 0x565128
push esi
mov ecx, 0x23b4
lea edi, [esp + 0x54]
call fcn.00530ca0
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xdc], 0x12
call fcn.004015b0
mov ecx, edi
jmp 0x56511b
push 0
mov ecx, 0x23af
lea edi, [esp + 0x34]
call fcn.00530ca0
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xdc], 0x13
call fcn.004015b0
mov ecx, edi
mov byte [esp + 0xd8], 0x11
call fcn.00404b10
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
push eax
call fcn.00401a10
lea esi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x24], esi
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0xe4], 0x14
call fcn.00401350
add esp, 0xc
mov edi, eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0xe4], 0x15
call fcn.00401350
add esp, 0xc
mov byte [esp + 0xd8], 0x16
mov ecx, dword [edi]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x24]
push esi
push eax
call fcn.00401cf0
add esp, 0x10
lea ecx, [esp + 0x34]
call fcn.00404b10
lea ecx, [esp + 0x38]
jmp 0x56504a
lea ecx, [esp + 0x14]
call fcn.004011e0
push 0x19
lea ecx, [esp + 0x18]
push 0x5a9510
push ecx
mov byte [esp + 0xe4], 0x17
call fcn.00401cf0
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.004011e0
push 0x190
lea edx, [esp + 0x1c]
push 0x5a9510
push edx
mov byte [esp + 0xe4], 0x18
call fcn.00401cf0
add esp, 0xc
push 0x5a9558
lea ecx, [esp + 0x24]
call fcn.00401210
mov byte [esp + 0xd8], 0x19
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
push eax
call fcn.00401a10
lea esi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x24], esi
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0xe4], 0x1a
call fcn.00401350
add esp, 0xc
mov edi, eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0xe4], 0x1b
call fcn.00401350
add esp, 0xc
mov byte [esp + 0xd8], 0x1c
mov ecx, dword [edi]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x24]
push esi
push eax
call fcn.00401cf0
add esp, 0x10
lea ecx, [esp + 0x40]
call fcn.00404b10
lea ecx, [esp + 0x3c]
call fcn.00404b10
lea ecx, [esp + 0x24]
call fcn.00404b10
lea ecx, [esp + 0x20]
call fcn.00404b10
lea ecx, [esp + 0x18]
call fcn.00404b10
lea ecx, [esp + 0x14]
jmp 0x5653e4
lea ecx, [esp + 0x18]
call fcn.004011e0
push 1
lea ecx, [esp + 0x1c]
push 0x5a9510
push ecx
mov byte [esp + 0xe4], 0x1d
call fcn.00401cf0
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.004011e0
push 0x63
lea edx, [esp + 0x18]
push 0x5a9510
push edx
mov byte [esp + 0xe4], 0x1e
call fcn.00401cf0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0xc
push eax
call fcn.00401a10
add eax, 0x10
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0xd8], 0x1f
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
push edx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00401cf0
add esp, 0x10
lea ecx, [esp + 0x24]
call fcn.00404b10
jmp 0x5653d7
movzx eax, bl
xor edi, edi
xor esi, esi
sub eax, edi
je 0x56536c
dec eax
je 0x565365
dec eax
jne 0x565373
mov esi, 0x27e0
mov edi, 0x36d0
jmp 0x565373
mov esi, 0x27e0
jmp 0x565371
mov esi, 0x2580
mov edi, esi
lea ecx, [esp + 0x18]
call fcn.004011e0
push esi
lea ecx, [esp + 0x1c]
push 0x5a9510
push ecx
mov byte [esp + 0xe4], 0x20
call fcn.00401cf0
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.004011e0
push edi
lea edx, [esp + 0x18]
push 0x5a9510
push edx
mov byte [esp + 0xe4], 0x21
call fcn.00401cf0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
add esp, 0xc
push eax
push ecx
push edx
lea eax, [esp + 0x38]
push eax
call fcn.00401cf0
add esp, 0x10
lea ecx, [esp + 0x14]
call fcn.00404b10
lea ecx, [esp + 0x18]
mov byte [esp + 0xd8], 1
call fcn.00404b10
push str.comctl32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x565637
push str.TaskDialogIndirect
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x34], eax
test eax, eax
je 0x565637
push 0x60
lea ecx, [esp + 0x70]
push 0
push ecx
call fcn.00503ac0
add esp, 0xc
mov dword [esp + 0x6c], 0x60
call fcn.0040da38
mov edx, dword [eax + 8]
mov eax, dword [ebp + 8]
mov dword [esp + 0x74], edx
test eax, eax
jne 0x565454
mov dword [esp + 0x70], eax
jmp 0x56545b
mov eax, dword [eax + 0x20]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x28]
xor edx, edx
test ecx, ecx
setne dl
mov eax, 1
mov dword [esp + 0x90], eax
add edx, 0xfffe
mov dword [esp + 0x84], edx
test ecx, ecx
je 0x56548f
mov eax, 2
mov dword [esp + 0x90], eax
xor ebx, ebx
lea edi, [esp + 0x5c]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
call fcn.00401710
push ebx
mov ecx, 0xf14
lea edi, [esp + 0x2c]
mov byte [esp + 0xdc], 0x22
call fcn.00530ca0
add esp, 4
push ebx
mov ecx, 0xf15
lea edi, [esp + 0x1c]
mov byte [esp + 0xdc], 0x23
call fcn.00530ca0
add esp, 4
mov byte [esp + 0xd8], 0x24
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
sub eax, esi
sar eax, 3
cmp eax, ebx
ja 0x5654fd
push str.invalid_vector_T__subscript
call fcn.0051b845
mov ecx, dword [esp + 0x28]
mov dword [esi], 1
mov dword [esi + 4], ecx
cmp eax, 2
jb 0x56552c
cmp eax, 1
ja 0x56551e
push str.invalid_vector_T__subscript
call fcn.0051b845
mov edx, dword [esp + 0x18]
mov dword [esi + 8], 2
mov dword [esi + 0xc], edx
push ebx
mov ecx, 0x23c1
lea edi, [esp + 0x40]
mov dword [esp + 0x98], esi
call fcn.00530ca0
add esp, 4
mov byte [esp + 0xd8], 0x25
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x80], edi
mov dword [esp + 0x98], 1
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
cmp dword [0x5ddaf8], ebx
je 0x565589
or dword [esp + 0x78], 0x2000
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x78]
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], ebx
call dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
lea eax, [edi - 0x10]
mov byte [esp + 0xd8], 0x24
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5655d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xd8], 0x23
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5655fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xd8], 0x22
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x565625
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
call fcn.0040c6ec
mov edi, dword [esp + 0x34]
add esp, 4
jmp 0x5656d3
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x565651
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0xd8], 0x26
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push ecx
push edx
lea eax, [esp + 0x1c]
push str._s_n_n_s_n
push eax
call fcn.00401cf0
xor eax, eax
add esp, 0x10
cmp dword [esp + 0x28], eax
je 0x565692
mov eax, 1
cmp dword [0x5ddaf8], 0
je 0x5656a0
or eax, 0x100000
mov esi, dword [esp + 0x14]
push 0
push eax
push esi
call fcn.0040cef4
mov ebx, eax
lea eax, [esi - 0x10]
mov byte [esp + 0xd8], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5656d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x5656de
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov byte [esp + 0xd8], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x565706
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xd8], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x565731
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebx
mov ecx, dword [esp + 0xd0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret