Function at 0x10012bfe
Capabilities:
Enumerate gui resources
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x348
mov eax, dword [0x102d94c0]
xor eax, esp
mov dword [esp + 0x344], eax
cmp byte [0x102f5620], 0
push esi
push edi
jne 0x100133ad
xor eax, eax
mov byte [0x102f5620], 1
mov dword [esp + 0xa8], eax
lea edi, [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0xac]
push eax
push ecx
push 2
pop edx
lea ecx, [esp + 0x9c]
call fcn.100024a6
add esp, 0xc
lea ecx, [esp + 0x90]
call fcn.10012a94
lea eax, [esp + 0x60]
xor edx, edx
push eax
lea eax, [esp + 0xac]
inc edx
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.100024a6
add esp, 0xc
lea ecx, [esp + 0x90]
push eax
call fcn.100153ca
lea ecx, [esp + 0x18]
call fcn.100136f5
lea ecx, [esp + 0x90]
call fcn.10012a94
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0xac]
push eax
push ecx
push 3
pop edx
lea ecx, [esp + 0x24]
call fcn.100024a6
add esp, 0xc
lea ecx, [esp + 0x90]
push eax
call fcn.100153ca
lea ecx, [esp + 0x18]
call fcn.100136f5
lea ecx, [esp + 0x90]
call fcn.10012a94
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0xac]
push eax
push ecx
push 4
pop edx
lea ecx, [esp + 0x24]
call fcn.100024a6
add esp, 0xc
lea ecx, [esp + 0x90]
push eax
call fcn.100153ca
lea ecx, [esp + 0x18]
call fcn.100136f5
lea ecx, [esp + 0x90]
call fcn.10012a94
lea ecx, [esp + 0x90]
call fcn.100136f5
mov esi, dword [esp + 0x60]
test esi, esi
je 0x10012d9c
mov edi, dword [esp + 0x64]
cmp esi, edi
je 0x10012d74
mov ecx, esi
call fcn.100170a5
push 0xc
pop eax
add esi, eax
cmp esi, edi
jne 0x10012d60
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x68]
sub eax, esi
push 0xc
pop ecx
cdq
idiv ecx
imul eax, eax, 0xc
push eax
push esi
call fcn.1001d970
xor esi, esi
pop ecx
pop ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
jmp 0x10012d9e
xor esi, esi
lea ecx, [esp + 0xa8]
call fcn.100136f5
xor eax, eax
lea edi, [esp + 0x78]
stosd dword es:[edi], eax
lea ecx, [esp + 0x78]
push esi
push 0x1000
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], 7
mov word [esp + 0x80], ax
call fcn.10017824
mov eax, 0x190
push eax
push eax
push esi
call sym.project.dll_cairo_image_surface_create
add esp, 0xc
mov edi, eax
push edi
call sym.project.dll_cairo_create
fld qword [0x102c6290]
sub esp, 0x24
mov esi, eax
fstp qword [esp + 0x20]
fldz
fstp qword [esp + 0x18]
fld qword [0x102c62b0]
fstp qword [esp + 0x10]
fld qword [0x102c62b8]
fst qword [esp + 8]
fstp qword [esp]
push esi
call sym.project.dll_cairo_arc
add esp, 0x2c
push esi
call sym.project.dll_cairo_stroke_preserve
pop ecx
push esi
call sym.project.dll_cairo_fill
fld qword [0x102c62b8]
sub esp, 0x1c
fst qword [esp + 0x18]
fstp qword [esp + 0x10]
fld qword [0x102c62c0]
fst qword [esp + 8]
fstp qword [esp]
push esi
call sym.project.dll_cairo_rectangle
add esp, 0x24
push esi
call sym.project.dll_cairo_fill
fld qword [0x102c62d8]
sub esp, 0xc
fst qword [esp + 8]
fstp qword [esp]
push esi
call sym.project.dll_cairo_move_to
fld qword [0x102c62d8]
sub esp, 0x1c
fst qword [esp + 0x28]
fld qword [0x102c62f0]
fst qword [esp + 0x20]
fstp qword [esp + 0x18]
fstp qword [esp + 0x10]
fld qword [0x102c62e0]
fst qword [esp + 8]
fstp qword [esp]
push esi
call sym.project.dll_cairo_curve_to
add esp, 0x34
push esi
call sym.project.dll_cairo_stroke
pop ecx
test esi, esi
jne 0x10012ec9
push 0x102c2a19
push edi
call sym.project.dll_cairo_surface_write_to_png
pop ecx
pop ecx
push esi
call sym.project.dll_cairo_destroy
pop ecx
push edi
call sym.project.dll_cairo_surface_destroy
cmp dword [esp + 0x90], 7
lea eax, [esp + 0x7c]
mov dword [esp], 0x1000
cmova eax, dword [esp + 0x7c]
xor esi, esi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x260
lea eax, [esp + 0xe4]
push esi
push eax
call fcn.101f69f0
add esp, 0xc
lea ecx, [esp + 0xe0]
call fcn.10011159
push 0x30
mov dword [esp + 0x68], esi
call fcn.101f4765
or edi, 0xffffffff
mov dword [esp], 0x102c2a19
lea ecx, [esp + 0x94]
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edi
call fcn.10016419
push 1
push 0x102c5280
mov ecx, eax
call fcn.1001796e
push eax
lea ecx, [esp + 0xac]
call fcn.100163e0
push 0x102c51bc
lea ecx, [esp + 0xac]
call fcn.10016346
push eax
lea ecx, [esp + 0x1c]
call fcn.100163e0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xe4]
call fcn.10011441
lea ecx, [esp + 0x18]
call fcn.100178b7
lea ecx, [esp + 0xa8]
call fcn.100178b7
lea ecx, [esp + 0x90]
call fcn.100178b7
mov eax, dword [esp + 0x60]
imul ecx, dword [esp + 0xf0], 0x370
fld qword [0x102c6208]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0xe8]
add ecx, 0x180
add eax, ecx
lea ecx, [esp + 0x64]
push eax
lea eax, [esp + 0x98]
fst qword [esp + 0x38]
push eax
fstp qword [esp + 0x54]
call fcn.10021938
lea eax, [esp + 0xe0]
mov dword [esp + 0x18], 0x102c6020
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xac]
mov dword [esp + 0x40], eax
mov dword [esp + 0xd0], esi
call fcn.1001f4d8
lea eax, [esp + 0x2c0]
push eax
lea ecx, [esp + 0x1c]
call fcn.1001f4d8
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x2c4]
call fcn.1001f4d8
lea ecx, [esp + 0xa8]
call fcn.10013614
lea ecx, [esp + 0x18]
call fcn.10013614
lea eax, [esp + 0x5c]
mov dword [esp + 0x18], 0x102c60ec
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0xa8]
lea eax, [esp + 0xe0]
mov dword [esp + 0xcc], esi
mov dword [esp + 0x20], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x40], eax
call fcn.1001f4d8
lea eax, [esp + 0x180]
push eax
lea ecx, [esp + 0x1c]
call fcn.1001f4d8
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x184]
call fcn.1001f4d8
lea ecx, [esp + 0xa8]
call fcn.10013614
lea ecx, [esp + 0x18]
call fcn.10013614
cmp dword [esp + 0x64], 1
je 0x1001313d
push str.libigl_viewer
lea ecx, [esp + 0x1c]
call fcn.10016419
push ecx
push ecx
lea eax, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0xf0]
call fcn.10010d23
push ecx
lea ecx, [esp + 0xe4]
call fcn.10010f6f
lea ecx, [esp + 0xe0]
call fcn.1001107b
lea ecx, [esp + 0x18]
call fcn.100178b7
lea ecx, [esp + 0x60]
call fcn.100135f9
lea ecx, [esp + 0xe0]
call fcn.100113af
cmp dword [esp + 0x8c], 7
lea edx, [esp + 0x78]
mov esi, dword [esp + 0x88]
cmova edx, dword [esp + 0x78]
test esi, esi
je 0x10013192
lea eax, [esi - 1]
mov ecx, edi
cmp eax, edi
push 0x5c
cmovb ecx, eax
pop eax
lea ecx, [edx + ecx*2]
jmp 0x10013187
cmp ecx, edx
je 0x10013192
sub ecx, 2
cmp word [ecx], ax
jne 0x10013180
sub ecx, edx
sar ecx, 1
jmp 0x10013194
mov ecx, edi
xor eax, eax
lea edi, [esp + 0x18]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x78]
and dword [esp + 0x28], 0
and dword [esp + 0x2c], 0
cmp esi, ecx
cmovb ecx, esi
cmp dword [esp + 0x8c], 7
push ecx
cmova eax, dword [esp + 0x7c]
lea ecx, [esp + 0x1c]
push eax
call fcn.1001d053
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x7c]
call fcn.100160f9
lea ecx, [esp + 0x18]
call fcn.100177f6
cmp dword [esp + 0x8c], 7
lea eax, [esp + 0x78]
cmova eax, dword [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push str.RonsPlace.ApplicationCore.Forms.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
xor eax, eax
lea edi, [esp + 0xd4]
stosd dword es:[edi], eax
xor esi, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
and dword [esp + 0xd8], esi
mov dword [esp + 0x90], eax
mov dword [esp + 0xdc], eax
mov eax, 0x7ffffffe
sub eax, dword [esp + 0x88]
mov dword [esp + 0xd4], esi
cmp eax, 1
jb 0x100133c1
cmp dword [esp + 0x8c], 7
lea eax, [esp + 0x78]
push 1
cmova eax, dword [esp + 0x7c]
push ecx
push dword [esp + 0x90]
push eax
push ecx
push dword [esp + 0x74]
lea ecx, [esp + 0x30]
call fcn.1001eceb
push 0x10
push 0x102c5200
lea ecx, [esp + 0x20]
call fcn.10016060
push eax
lea ecx, [esp + 0xac]
call fcn.10016130
lea ecx, [esp + 0x18]
call fcn.100177f6
cmp dword [esp + 0xbc], 7
lea eax, [esp + 0xa8]
lea ecx, [esp + 0x60]
cmova eax, dword [esp + 0xa8]
push eax
call fcn.1001616b
push ecx
push ecx
lea edx, [esp + 0x68]
lea ecx, [esp + 0x20]
call fcn.10012b41
and dword [esp + 0x1c], esi
mov edi, eax
lea eax, [esp + 0xdc]
pop ecx
pop ecx
cmp eax, edi
je 0x100132f8
mov ecx, eax
call fcn.10013632
mov eax, dword [edi + 8]
mov esi, dword [edi]
mov dword [esp + 0x90], eax
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [esp + 0x14], esi
lea ecx, [esp + 0x18]
call fcn.10013632
lea ecx, [esp + 0x60]
call fcn.100177f6
push str.iconv.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x260e
push 0
lea edi, [eax + 0x1000]
push edi
mov dword [esp + 0x6c], edi
call fcn.101f69f0
mov edi, dword [esp + 0x20]
add esp, 0xc
xor eax, eax
mov dword [esp + 0x5c], eax
lea edx, [edi + eax]
movzx eax, al
imul ecx, eax, 0x3f
mov eax, dword [esp + 0x5c]
movzx eax, al
sub cl, 0x5f
movzx ecx, cl
imul ecx, eax
mov al, 0xab
sub al, cl
mov ecx, 0x260e
add byte [edx], al
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
cmp eax, ecx
jb 0x10013339
mov edi, dword [esp + 0x60]
push ecx
push esi
push edi
call fcn.101f6470
add esp, 0xc
push 0
push edi
call dword [sym.imp.USER32.dll_EnumWindows]
lea ecx, [esp + 0xa8]
call fcn.100177f6
test esi, esi
je 0x100133a4
mov eax, dword [esp + 0x90]
sub eax, esi
push eax
push esi
call fcn.1001d970
pop ecx
pop ecx
lea ecx, [esp + 0x78]
call fcn.100177f6
mov ecx, dword [esp + 0x34c]
pop edi
pop esi
xor ecx, esp
call fcn.101f469d
mov esp, ebp
pop ebp
ret
call fcn.10001783
int3