Function at 0x10013eb0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10039d18
mov eax, dword fs:[0]
push eax
sub esp, 0x578
mov eax, dword [0x1004b6e0]
xor eax, esp
mov dword [esp + 0x570], eax
push ebx
push esi
push edi
mov eax, dword [0x1004b6e0]
xor eax, esp
push eax
lea eax, [esp + 0x588]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
lea ecx, [esp + 0x40c]
mov dword [esp + 0x14], ebx
call fcn.10016180
mov dword [esp + 0x590], ebx
lea ecx, [esp + 0x4c4]
call fcn.10016180
mov byte [esp + 0x590], 1
lea eax, [esp + 0x2bc]
push eax
mov ecx, esi
call fcn.10016aa0
mov byte [esp + 0x590], 2
cmp dword [eax + 0x14], 8
jb 0x10013f3e
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x410]
call fcn.100168d0
mov byte [esp + 0x590], 1
cmp dword [esp + 0x2d0], 8
jb 0x10013f6c
push dword [esp + 0x2bc]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x2d0], 7
cmp dword [0x1004c5f0], 0x10
lea ecx, [esp + 0xe4]
mov word [esp + 0x2bc], ax
mov eax, 0x1004c5dc
cmovae eax, dword [0x1004c5dc]
sub esp, 0xc
mov dword [esp + 0x2d8], 0
push eax
call fcn.10017040
mov byte [esp + 0x590], 3
sub esp, 0x10
lea ecx, [esp + 0x1ac]
call fcn.10018750
mov byte [esp + 0x590], 4
mov dword [esp + 0x29c], 0
mov dword [esp + 0x2a0], 0
mov dword [esp + 0x2a0], 0xf
mov dword [esp + 0x29c], 0
mov byte [esp + 0x28c], 0
mov byte [esp + 0x590], 5
xor eax, eax
mov dword [esp + 0x254], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x258], 7
mov dword [esp + 0x254], 0
mov word [esp + 0x244], ax
mov byte [esp + 0x590], 6
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2b8], 0xf
mov dword [esp + 0x2b4], eax
mov byte [esp + 0x2a4], al
mov byte [esp + 0x590], 7
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x288], 7
mov dword [esp + 0x284], eax
mov word [esp + 0x274], ax
mov byte [esp + 0x590], 8
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea ecx, [ecx]
mov eax, dword [esp + 0xe4]
lea ecx, [esp + 0xe4]
mov eax, dword [eax + 4]
add ecx, eax
lea eax, [esp + 0x20]
push eax
call fcn.1000d910
mov byte [esp + 0x590], 9
push eax
call fcn.1001b1c0
add esp, 4
mov esi, eax
mov byte [esp + 0x590], 8
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x10014101
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x10014101
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [esi]
mov ecx, esi
push 0xa
mov eax, dword [eax + 0x20]
call eax
mov byte [esp + 0x24], al
lea edx, [esp + 0x28c]
push dword [esp + 0x24]
lea ecx, [esp + 0xe8]
call fcn.1001d6a0
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x10014b75
mov ecx, dword [esp + 0x29c]
mov eax, dword [esp + 0x284]
cmp ecx, eax
ja 0x10014172
cmp dword [esp + 0x288], 8
lea eax, [esp + 0x274]
mov dword [esp + 0x284], ecx
cmovae eax, dword [esp + 0x274]
xor edx, edx
mov word [eax + ecx*2], dx
jmp 0x10014183
sub ecx, eax
push 0
push ecx
lea ecx, [esp + 0x27c]
call fcn.10018fa0
cmp dword [esp + 0x288], 8
lea edx, [esp + 0x274]
mov eax, dword [esp + 0x284]
lea ecx, [esp + 0x28c]
cmovae edx, dword [esp + 0x274]
cmp dword [esp + 0x2a0], 0x10
cmovae ecx, dword [esp + 0x28c]
inc eax
push eax
push edx
push 0xffffffffffffffff
push ecx
push 0
push 0
call edi
cmp dword [esp + 0x288], 8
lea eax, [esp + 0x274]
lea ecx, [esp + 0x4c4]
cmovae eax, dword [esp + 0x274]
push eax
call fcn.100168d0
cmp byte [esp + 0x424], 0
je 0x1001458d
lea eax, [esp + 0x2ec]
push eax
lea ecx, [esp + 0x410]
call fcn.100163b0
mov esi, eax
mov byte [esp + 0x590], 0xa
lea eax, [esp + 0x37c]
or ebx, 1
lea ecx, [esp + 0x4c4]
push eax
mov dword [esp + 0x18], ebx
call fcn.100163b0
mov ecx, eax
mov dword [esp + 0x590], 0xb
or ebx, 2
mov dword [esp + 0x14], ebx
cmp dword [esi + 0x14], 8
mov eax, dword [esi + 0x10]
mov dword [esp + 0x1c], eax
jb 0x10014252
mov esi, dword [esi]
cmp dword [ecx + 0x14], 8
mov edi, dword [ecx + 0x10]
jb 0x1001425d
mov ecx, dword [ecx]
cmp edi, eax
mov edx, eax
cmovb edx, edi
test edx, edx
jne 0x10014280
xor eax, eax
test eax, eax
jne 0x100142a8
mov ecx, dword [esp + 0x1c]
cmp edi, ecx
jae 0x1001429f
or eax, 0xffffffff
jmp 0x100142a6
mov ax, word [ecx]
cmp ax, word [esi]
jne 0x10014291
add ecx, 2
add esi, 2
dec edx
jmp 0x10014266
movzx eax, word [ecx]
cmp ax, word [esi]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x1001426a
xor eax, eax
cmp edi, ecx
setne al
test eax, eax
sete al
test al, al
je 0x1001458d
cmp byte [esp + 0x42c], 0
je 0x1001458d
mov eax, dword [esp + 0x4e0]
cmp eax, dword [esp + 0x428]
jne 0x1001458d
cmp byte [esp + 0x42e], 0
je 0x1001458d
mov al, byte [esp + 0x4e5]
cmp al, byte [esp + 0x42d]
jne 0x1001458d
cmp byte [esp + 0x4b8], 0
je 0x1001436b
lea eax, [esp + 0x3dc]
push eax
lea ecx, [esp + 0x410]
call fcn.10016850
mov esi, eax
mov dword [esp + 0x590], 0xc
lea eax, [esp + 0x34c]
or ebx, 4
lea ecx, [esp + 0x4c4]
push eax
mov dword [esp + 0x18], ebx
call fcn.10016850
mov dword [esp + 0x590], 0xd
or ebx, 8
mov dword [esp + 0x14], ebx
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x1001435a
mov esi, dword [esi]
push ecx
push esi
push dword [eax + 0x10]
push ecx
mov ecx, eax
call fcn.1001cf10
test eax, eax
je 0x1001437f
mov al, byte [esp + 0x555]
cmp al, byte [esp + 0x49d]
jne 0x1001458d
cmp byte [esp + 0x448], 0
je 0x100143e4
lea eax, [esp + 0x3c4]
push eax
lea ecx, [esp + 0x410]
call fcn.10016490
mov esi, eax
mov dword [esp + 0x590], 0xe
lea eax, [esp + 0x31c]
or ebx, 0x10
lea ecx, [esp + 0x4c4]
push eax
mov dword [esp + 0x18], ebx
call fcn.10016490
mov dword [esp + 0x590], 0xf
or ebx, 0x20
mov edx, esi
mov dword [esp + 0x14], ebx
mov ecx, eax
call fcn.1001c450
test al, al
jne 0x100143f8
mov al, byte [esp + 0x4e7]
cmp al, byte [esp + 0x42f]
jne 0x1001458d
cmp byte [esp + 0x464], 0
je 0x10014460
lea eax, [esp + 0x394]
push eax
lea ecx, [esp + 0x410]
call fcn.10016570
mov esi, eax
mov dword [esp + 0x590], 0x10
lea eax, [esp + 0x3ac]
or ebx, 0x40
lea ecx, [esp + 0x4c4]
push eax
mov dword [esp + 0x18], ebx
call fcn.10016570
mov dword [esp + 0x590], 0x11
or ebx, 0x80
mov edx, esi
mov dword [esp + 0x14], ebx
mov ecx, eax
call fcn.1001c450
test al, al
jne 0x10014474
mov al, byte [esp + 0x501]
cmp al, byte [esp + 0x449]
jne 0x1001458d
cmp byte [esp + 0x480], 0
je 0x100144df
lea eax, [esp + 0x2d4]
push eax
lea ecx, [esp + 0x410]
call fcn.10016670
mov esi, eax
mov dword [esp + 0x590], 0x12
lea eax, [esp + 0x364]
or ebx, 0x100
lea ecx, [esp + 0x4c4]
push eax
mov dword [esp + 0x18], ebx
call fcn.10016670
mov dword [esp + 0x590], 0x13
or ebx, 0x200
mov edx, esi
mov dword [esp + 0x14], ebx
mov ecx, eax
call fcn.1001c450
test al, al
jne 0x100144f3
mov al, byte [esp + 0x51f]
cmp al, byte [esp + 0x467]
jne 0x1001458d
cmp byte [esp + 0x49c], 0
je 0x1001455e
lea eax, [esp + 0x3f4]
push eax
lea ecx, [esp + 0x410]
call fcn.10016780
mov esi, eax
mov dword [esp + 0x590], 0x14
lea eax, [esp + 0x2bc]
or ebx, 0x400
lea ecx, [esp + 0x4c4]
push eax
mov dword [esp + 0x18], ebx
call fcn.10016780
mov dword [esp + 0x590], 0x15
or ebx, 0x800
mov edx, esi
mov dword [esp + 0x14], ebx
mov ecx, eax
call fcn.1001c450
test al, al
jne 0x1001456e
mov al, byte [esp + 0x539]
cmp al, byte [esp + 0x481]
jne 0x1001458d
cmp byte [esp + 0x466], 0
je 0x1001458d
mov al, byte [esp + 0x51d]
mov byte [esp + 0x1b], 1
cmp al, byte [esp + 0x465]
je 0x10014592
mov byte [esp + 0x1b], 0
mov dword [esp + 0x590], 0x14
test ebx, 0x800
je 0x100145e8
and ebx, 0xfffff7ff
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x2d0], 8
jb 0x100145c8
push dword [esp + 0x2bc]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x2d0], 7
mov dword [esp + 0x2cc], 0
mov word [esp + 0x2bc], ax
mov dword [esp + 0x590], 0x13
test ebx, 0x400
je 0x1001463e
and ebx, 0xfffffbff
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x408], 8
jb 0x1001461e
push dword [esp + 0x3f4]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x408], 7
mov dword [esp + 0x404], 0
mov word [esp + 0x3f4], ax
mov dword [esp + 0x590], 0x12
test ebx, 0x200
je 0x10014694
and ebx, 0xfffffdff
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x378], 8
jb 0x10014674
push dword [esp + 0x364]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x378], 7
mov dword [esp + 0x374], 0
mov word [esp + 0x364], ax
mov dword [esp + 0x590], 0x11
test ebx, 0x100
je 0x100146ea
and ebx, 0xfffffeff
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x2e8], 8
jb 0x100146ca
push dword [esp + 0x2d4]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x2e8], 7
mov dword [esp + 0x2e4], 0
mov word [esp + 0x2d4], ax
mov dword [esp + 0x590], 0x10
test bl, bl
jns 0x1001473c
and ebx, 0xffffff7f
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x3c0], 8
jb 0x1001471c
push dword [esp + 0x3ac]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x3c0], 7
mov dword [esp + 0x3bc], 0
mov word [esp + 0x3ac], ax
mov dword [esp + 0x590], 0xf
test bl, 0x40
je 0x1001478c
and ebx, 0xffffffbf
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x3a8], 8
jb 0x1001476c
push dword [esp + 0x394]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x3a8], 7
mov dword [esp + 0x3a4], 0
mov word [esp + 0x394], ax
mov dword [esp + 0x590], 0xe
test bl, 0x20
je 0x100147dc
and ebx, 0xffffffdf
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x330], 8
jb 0x100147bc
push dword [esp + 0x31c]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x330], 7
mov dword [esp + 0x32c], 0
mov word [esp + 0x31c], ax
mov dword [esp + 0x590], 0xd
test bl, 0x10
je 0x1001482c
and ebx, 0xffffffef
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x3d8], 8
jb 0x1001480c
push dword [esp + 0x3c4]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x3d8], 7
mov dword [esp + 0x3d4], 0
mov word [esp + 0x3c4], ax
mov dword [esp + 0x590], 0xc
test bl, 8
je 0x1001487c
and ebx, 0xfffffff7
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x360], 8
jb 0x1001485c
push dword [esp + 0x34c]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x360], 7
mov dword [esp + 0x35c], 0
mov word [esp + 0x34c], ax
mov dword [esp + 0x590], 0xb
test bl, 4
je 0x100148cc
and ebx, 0xfffffffb
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x3f0], 8
jb 0x100148ac
push dword [esp + 0x3dc]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x3f0], 7
mov dword [esp + 0x3ec], 0
mov word [esp + 0x3dc], ax
mov dword [esp + 0x590], 0xa
test bl, 2
je 0x1001491c
and ebx, 0xfffffffd
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x390], 8
jb 0x100148fc
push dword [esp + 0x37c]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x390], 7
mov dword [esp + 0x38c], 0
mov word [esp + 0x37c], ax
mov dword [esp + 0x590], 8
test bl, 1
je 0x1001496c
and ebx, 0xfffffffe
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x300], 8
jb 0x1001494c
push dword [esp + 0x2ec]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x300], 7
mov dword [esp + 0x2fc], 0
mov word [esp + 0x2ec], ax
cmp byte [esp + 0x1b], 0
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
je 0x100140b0
lea eax, [esp + 0x304]
push eax
lea ecx, [esp + 0x4c8]
call fcn.10016aa0
mov esi, eax
mov byte [esp + 0x590], 0x16
lea eax, [esp + 0x244]
cmp eax, esi
je 0x10014a5a
cmp dword [esp + 0x258], 8
jb 0x100149c3
push dword [esp + 0x244]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x258], 7
mov dword [esp + 0x254], 0
mov word [esp + 0x244], ax
cmp dword [esi + 0x14], 8
jae 0x10014a05
mov eax, dword [esi + 0x10]
inc eax
je 0x10014a33
add eax, eax
push eax
lea eax, [esp + 0x248]
push esi
push eax
call fcn.1001ef90
add esp, 0xc
jmp 0x10014a33
lea eax, [esp + 0x244]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
mov byte [esp + 0x590], 0x17
mov eax, dword [esi]
mov dword [esp + 0x244], eax
mov byte [esp + 0x590], 0x16
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x254], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x258], eax
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
mov byte [esp + 0x590], 8
cmp dword [esp + 0x318], 8
jb 0x10014a7b
push dword [esp + 0x304]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x318], 7
mov word [esp + 0x304], ax
lea ecx, [esp + 0x4c4]
lea eax, [esp + 0x334]
mov dword [esp + 0x314], 0
push eax
call fcn.10016aa0
mov esi, eax
mov byte [esp + 0x590], 0x18
lea ecx, [esp + 0x2a4]
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x2b4]
cmp edx, eax
ja 0x10014aeb
cmp dword [esp + 0x2b8], 0x10
mov dword [esp + 0x2b4], edx
cmovae ecx, dword [esp + 0x2a4]
mov byte [edx + ecx], 0
jmp 0x10014af5
push 0
sub edx, eax
push edx
call fcn.10018c80
cmp dword [esp + 0x2b8], 0x10
lea ecx, [esp + 0x2a4]
cmovae ecx, dword [esp + 0x2a4]
cmp dword [esi + 0x14], 8
jb 0x10014b14
mov esi, dword [esi]
mov eax, dword [esp + 0x2b4]
push 0
push 0
inc eax
push eax
push ecx
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov byte [esp + 0x590], 8
cmp dword [esp + 0x348], 8
jb 0x10014b50
push dword [esp + 0x334]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x348], 7
mov dword [esp + 0x344], 0
mov word [esp + 0x334], ax
jmp 0x100140a7
lea ecx, [esp + 0xf4]
call fcn.10019820
test eax, eax
jne 0x10014bb9
mov eax, dword [esp + 0xe4]
lea ecx, [esp + 0xe4]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x10014ba7
or eax, 4
and eax, 0x17
mov dword [ecx + 0xc], eax
test dword [ecx + 0x10], eax
je 0x10014bb9
push 0
call fcn.1000d870
xor eax, eax
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x270], 7
mov dword [esp + 0x26c], 0
mov word [esp + 0x25c], ax
mov byte [esp + 0x590], 0x19
mov eax, 0x1004c5dc
cmp dword [0x1004c5f0], 0x10
lea ecx, [esp + 0x2c]
cmovae eax, dword [0x1004c5dc]
sub esp, 0xc
push eax
call fcn.10017040
mov byte [esp + 0x590], 0x1a
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
test byte [esp + eax + 0x38], 6
je 0x10014c35
or esi, 0xffffffff
jmp 0x10014f20
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x2c]
mov eax, dword [eax + 4]
add ecx, eax
lea eax, [esp + 0x1c]
push eax
call fcn.1000d910
mov byte [esp + 0x590], 0x1b
push eax
call fcn.1001b1c0
add esp, 4
mov esi, eax
mov byte [esp + 0x590], 0x1a
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x10014c80
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x10014c80
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [esi]
mov ecx, esi
push 0xa
mov eax, dword [eax + 0x20]
call eax
mov byte [esp + 0x24], al
lea edx, [esp + 0x28c]
push dword [esp + 0x24]
lea ecx, [esp + 0x30]
call fcn.1001d6a0
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x10014e56
mov ecx, dword [esp + 0x29c]
mov eax, dword [esp + 0x26c]
cmp ecx, eax
ja 0x10014cee
cmp dword [esp + 0x270], 8
lea eax, [esp + 0x25c]
mov dword [esp + 0x26c], ecx
cmovae eax, dword [esp + 0x25c]
xor edx, edx
mov word [eax + ecx*2], dx
jmp 0x10014cff
sub ecx, eax
push 0
push ecx
lea ecx, [esp + 0x264]
call fcn.10018fa0
cmp dword [esp + 0x270], 8
lea edx, [esp + 0x25c]
mov eax, dword [esp + 0x26c]
lea ecx, [esp + 0x28c]
cmovae edx, dword [esp + 0x25c]
cmp dword [esp + 0x2a0], 0x10
cmovae ecx, dword [esp + 0x28c]
inc eax
push eax
push edx
push 0xffffffffffffffff
push ecx
push 0
push 0
call edi
cmp dword [esp + 0x258], 8
lea ecx, [esp + 0x244]
mov edi, dword [esp + 0x254]
lea edx, [esp + 0x25c]
cmovae ecx, dword [esp + 0x244]
mov esi, edi
cmp dword [esp + 0x270], 8
mov ebx, dword [esp + 0x26c]
cmovae edx, dword [esp + 0x25c]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
jne 0x10014d96
xor eax, eax
test eax, eax
jne 0x10014dbe
cmp ebx, edi
jae 0x10014db5
or eax, 0xffffffff
jmp 0x10014dbc
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x10014da7
add edx, 2
add ecx, 2
dec esi
jmp 0x10014d85
movzx eax, word [edx]
cmp ax, word [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x10014d89
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
sete al
test al, al
sete al
test al, al
je 0x10014c35
lea edx, [esp + 0x28c]
lea ecx, [esp + 0x19c]
call fcn.1001b420
mov esi, eax
lea eax, [esp + 0x20]
push eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.1000d910
mov byte [esp + 0x590], 0x1c
push eax
call fcn.1001b1c0
add esp, 4
mov edi, eax
mov byte [esp + 0x590], 0x1a
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x10014e2e
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x10014e2e
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [edi]
mov ecx, edi
push 0xa
mov eax, dword [eax + 0x20]
call eax
movzx eax, al
mov ecx, esi
push eax
call fcn.1001c920
mov ecx, esi
call fcn.1001ab80
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x10014c35
lea ecx, [esp + 0x3c]
call fcn.10019820
test eax, eax
jne 0x10014e91
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x2c]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x10014e7f
or eax, 4
and eax, 0x17
mov dword [ecx + 0xc], eax
test dword [ecx + 0x10], eax
je 0x10014e91
push 0
call fcn.1000d870
lea ecx, [esp + 0x1a0]
call fcn.10019820
test eax, eax
jne 0x10014ed5
mov eax, dword [esp + 0x19c]
lea ecx, [esp + 0x19c]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x10014ec3
or eax, 4
and eax, 0x17
mov dword [ecx + 0xc], eax
test dword [ecx + 0x10], eax
je 0x10014ed5
push 0
call fcn.1000d870
cmp dword [0x1004c5f0], 0x10
mov edi, 0x1004c5dc
mov eax, edi
cmovae eax, dword [0x1004c5dc]
push eax
call fcn.10020ba4
add esp, 4
mov eax, 0x1004c5f4
cmp dword [0x1004c5f0], 0x10
cmovae edi, dword [0x1004c5dc]
cmp dword [0x1004c608], 0x10
push edi
cmovae eax, dword [0x1004c5f4]
push eax
call fcn.1001ff4c
add esp, 8
xor esi, esi
mov byte [esp + 0x590], 0x19
lea ecx, [esp + 0x2c]
call fcn.100109d0
mov byte [esp + 0x590], 8
cmp dword [esp + 0x270], 8
jb 0x10014f52
push dword [esp + 0x25c]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x270], 7
mov dword [esp + 0x26c], 0
mov word [esp + 0x25c], ax
mov byte [esp + 0x590], 7
cmp dword [esp + 0x288], 8
jb 0x10014f93
push dword [esp + 0x274]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x288], 7
mov dword [esp + 0x284], 0
mov word [esp + 0x274], ax
mov byte [esp + 0x590], 6
cmp dword [esp + 0x2b8], 0x10
jb 0x10014fd4
push dword [esp + 0x2a4]
call fcn.1001f7c4
add esp, 4
mov dword [esp + 0x2b8], 0xf
mov dword [esp + 0x2b4], 0
mov byte [esp + 0x2a4], 0
mov byte [esp + 0x590], 5
cmp dword [esp + 0x258], 8
jb 0x10015013
push dword [esp + 0x244]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x258], 7
mov dword [esp + 0x254], 0
mov word [esp + 0x244], ax
mov byte [esp + 0x590], 4
cmp dword [esp + 0x2a0], 0x10
jb 0x10015054
push dword [esp + 0x28c]
call fcn.1001f7c4
add esp, 4
mov dword [esp + 0x2a0], 0xf
mov dword [esp + 0x29c], 0
mov byte [esp + 0x28c], 0
mov byte [esp + 0x590], 3
lea ecx, [esp + 0x19c]
call fcn.10013e00
mov byte [esp + 0x590], 1
lea ecx, [esp + 0xe4]
call fcn.100109d0
mov byte [esp + 0x590], 0
lea ecx, [esp + 0x4c4]
call fcn.10016250
mov dword [esp + 0x590], 0xffffffff
lea ecx, [esp + 0x40c]
call fcn.10016250
mov eax, esi
mov ecx, dword [esp + 0x588]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x570]
xor ecx, esp
call fcn.1001ef7b
mov esp, ebp
pop ebp
ret