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

Disassembly:
push 0xcc
mov eax, 0x4d147c
call fcn.004a9c99
mov esi, dword [ebp + 8]
xor edx, edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], edx
mov dword [eax], edx
cmp dword [esi + 0x108], edx
je 0x415eb3
mov edi, dword [esi + 0x104]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x415eb3
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor edx, edx
mov dword [edi + 8], edx
lea ebx, [esi + 0x100]
mov byte [esi + 0x10c], dl
mov ecx, dword [ebx]
test ecx, ecx
je 0x415ecf
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor edx, edx
mov dword [ebx], edx
mov edi, dword [ebp + 0xc]
lea eax, [esi + 0xf0]
mov dword [eax], edx
lea ebx, [esi + 0x1a8]
mov dword [eax + 4], edx
xor ecx, ecx
mov byte [esi + 0xc5], dl
lea eax, [esi + 0xac]
mov dword [esi + 0xb8], edx
mov dword [esi + 0xbc], edx
mov byte [esi + 0xc0], dl
mov word [esi + 0xf8], 0
mov dword [esi + 0xe8], edi
mov dword [eax + 4], edx
mov eax, dword [eax]
mov word [eax], cx
mov eax, dword [ebx]
mov dword [ebx + 4], edx
mov word [eax], cx
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
mov dword [ebp - 0x4c], eax
mov al, byte [esi + 0x11c]
mov byte [esi + 0xa4], al
test al, al
je 0x415f59
cmp dword [esi + 0x54], 0
mov eax, dword [esi + 0x120]
mov dword [esi + 0xa8], eax
je 0x415f52
cmp dword [esi + 0x54], 3
jne 0x415f59
or dword [esi + 0xa8], 0xffffffff
mov al, byte [esi + 0x21]
mov byte [esi + 0x9d], al
lea eax, [esi + 0x6c]
push eax
push edi
call fcn.0041d2d3
test eax, eax
jne 0x41734c
and dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x4c]
lea edx, [ebp - 0x20]
push edx
push 0x1d
mov byte [ebp - 4], 1
mov eax, dword [ecx]
push edi
push ecx
call dword [eax + 0x18]
mov edi, eax
test edi, edi
je 0x415faa
cmp word [ebp - 0x20], 0
je 0x415fa3
lea ecx, [ebp - 0x20]
call fcn.0040870b
mov eax, edi
jmp 0x41734c
cmp word [ebp - 0x20], 0
je 0x415fea
push 0x15
pop eax
lea ecx, [ebp - 0x20]
cmp word [ebp - 0x20], ax
je 0x415fcc
call fcn.0040870b
mov eax, 0x80004005
jmp 0x41734c
mov eax, dword [ebp - 0x18]
mov dword [esi + 0xb8], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xbc], eax
mov byte [esi + 0xc0], 1
call fcn.0040870b
xor ecx, ecx
xor eax, eax
mov byte [ebp - 0x22], cl
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x4c]
lea edx, [ebp - 0x20]
push edx
push 0x5a
push dword [ebp + 0xc]
mov byte [ebp - 4], 2
mov eax, dword [ecx]
push ecx
call dword [eax + 0x18]
mov edi, eax
test edi, edi
jne 0x415f94
push 8
pop eax
cmp word [ebp - 0x20], ax
jne 0x416084
push dword [ebp - 0x18]
mov ecx, ebx
mov byte [ebp - 0x22], 1
call fcn.00402d91
cmp word [ebp - 0x20], di
je 0x416038
lea ecx, [ebp - 0x20]
call fcn.0040870b
xor eax, eax
and dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x4c]
lea edx, [ebp - 0x20]
push edx
push 0x36
push dword [ebp + 0xc]
mov byte [ebp - 4], 3
mov eax, dword [ecx]
push ecx
call dword [eax + 0x18]
mov edi, eax
test edi, edi
jne 0x415f94
mov ax, word [ebp - 0x20]
push 8
pop ecx
cmp ax, cx
jne 0x416093
push dword [ebp - 0x18]
mov ecx, ebx
mov byte [ebp - 0x22], 0
mov byte [ebp + 0xb], 1
call fcn.00402d91
mov ax, word [ebp - 0x20]
jmp 0x41609c
cmp word [ebp - 0x20], 0
je 0x416038
lea ecx, [ebp - 0x20]
jmp 0x415fbd
mov byte [ebp + 0xb], 0
test ax, ax
jne 0x41608b
mov byte [ebp - 4], 0
test ax, ax
je 0x4160ad
lea ecx, [ebp - 0x20]
call fcn.0040870b
cmp dword [esi + 0x1ac], 0
mov bl, 1
jne 0x41617c
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x41617c
mov eax, dword [ecx]
lea edx, [ebp - 0x38]
push edx
lea edx, [ebp - 0x48]
push edx
lea edx, [ebp - 0x5c]
push edx
push 0x59
push dword [esi + 0xe8]
push ecx
call dword [eax + 0x10]
cmp dword [ebp - 0x48], 0
je 0x41617c
cmp dword [ebp - 0x38], 1
jne 0x415fc2
lea ecx, [ebp - 0x58]
call fcn.00402b1a
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 4
call fcn.00414c19
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x80]
push dword [ebp - 0x48]
push dword [ebp - 0x5c]
call fcn.00406c28
test al, al
je 0x41615d
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x22], 0
push eax
lea ecx, [ebp - 0x80]
call fcn.00406e7c
push eax
lea ecx, [esi + 0x1a8]
mov byte [ebp - 4], 6
call fcn.00402ccc
push dword [ebp - 0x1c]
call fcn.004a8d17
cmp dword [ebp - 0x7c], 1
pop ecx
sete byte [ebp + 0xb]
cmp dword [ebp - 0x80], 0xa0000003
setne bl
push dword [ebp - 0x6c]
call fcn.004a8d17
push dword [ebp - 0x78]
call fcn.004a8d17
mov byte [ebp - 4], 0
push dword [ebp - 0x58]
call fcn.004a8d17
add esp, 0xc
xor eax, eax
mov byte [ebp - 0x9c], bl
lea ebx, [esi + 0x1a8]
cmp dword [esi + 0x1ac], eax
je 0x41628f
push 0x5c
push 0x2f
mov ecx, ebx
call fcn.00403179
mov edi, dword [ebx]
mov edx, 0x4f0058
mov ecx, edi
call fcn.00402506
test al, al
je 0x4161c2
push 4
mov ecx, ebx
mov byte [ebp + 0xb], 0
call fcn.00403269
mov edi, dword [ebx]
mov ecx, edi
call fcn.0040759f
test eax, eax
je 0x4161e4
mov byte [ebp + 0xb], 0
push eax
mov ecx, ebx
call fcn.00403269
mov ecx, dword [ebx]
call fcn.0040759f
test eax, eax
jne 0x4161d1
xor eax, eax
cmp dword [esi + 0x1ac], eax
je 0x41628f
cmp byte [ebp + 0xb], al
jne 0x41628f
cmp dword [esi + 0x114], eax
je 0x41628f
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea edx, [ebp - 0x1c]
mov byte [ebp - 4], 7
mov ecx, ebx
call fcn.004039a5
mov eax, dword [esi + 0x114]
xor edi, edi
test eax, eax
je 0x416251
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx + edi*4]
mov edx, dword [eax]
mov eax, dword [esi + 0x110]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax]
call fcn.004038e5
test eax, eax
jne 0x41625a
mov eax, dword [esi + 0x114]
inc edi
cmp edi, eax
jb 0x41622d
push eax
lea ecx, [ebp - 0x1c]
call fcn.00417cb9
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x58]
call fcn.00419bcd
push 8
pop ecx
mov byte [ebp - 4], cl
lea ecx, [esi + 0x1a8]
push eax
call fcn.00402ccc
push dword [ebp - 0x58]
call fcn.004a8d17
pop ecx
xor ebx, ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00401bb4
jmp 0x416291
xor ebx, ebx
mov edi, dword [ebp + 0xc]
lea eax, [esi + 0xc5]
mov ecx, dword [ebp - 0x4c]
mov edx, edi
push eax
push 0xf
call fcn.0041cc66
pop ecx
pop ecx
test eax, eax
jne 0x41734c
mov ecx, esi
call fcn.00415ac2
test eax, eax
jne 0x41734c
cmp byte [esi + 0x1e], al
jne 0x4162d4
cmp byte [esi + 0x9c], al
je 0x4162d4
xor eax, eax
jmp 0x41734c
mov ecx, dword [esi + 0x24]
lea edx, [esi + 0x78]
test ecx, ecx
je 0x4162fd
lea eax, [ebp - 0x31]
push eax
lea edx, [esi + 0x6c]
call fcn.00415d39
xor edx, edx
test al, al
pop ecx
movzx ecx, byte [ebp - 0x31]
cmovne edx, ecx
test dl, dl
je 0x4162cd
lea edx, [esi + 0x78]
cmp byte [esi + 0x11c], 0
je 0x416347
lea eax, [edx + 4]
mov ecx, dword [eax]
mov dword [ebp - 0x38], eax
test ecx, ecx
je 0x41633f
push 4
mov eax, ebx
pop ebx
cmp dword [esi + 0x54], ebx
jne 0x416329
cmp byte [esi + 0x9c], 0
je 0x416329
mov eax, ecx
jmp 0x416337
cmp dword [esi + 0x54], 2
je 0x416334
cmp dword [esi + 0x54], ebx
jne 0x416337
lea eax, [ecx - 1]
push eax
mov ecx, edx
call fcn.00417cb9
lea ebx, [esi + 0x78]
jmp 0x4163da
lea eax, [esi + 0x7c]
mov dword [ebp - 0x38], eax
mov eax, dword [eax]
test eax, eax
jne 0x41635f
cmp byte [esi + 0x9e], al
jne 0x4162cd
mov ecx, dword [esi + 0x54]
test ecx, ecx
js 0x4163cc
cmp ecx, 1
jle 0x41638b
cmp ecx, 2
je 0x416382
cmp ecx, 4
jne 0x4163cc
cmp byte [esi + 0x9c], 0
je 0x416382
mov ebx, eax
jmp 0x4163cc
test eax, eax
je 0x4163cc
lea ebx, [eax - 1]
jmp 0x4163cc
mov ecx, dword [esi + 0x114]
test ecx, ecx
je 0x4163cc
cmp eax, ecx
jb 0x4163b9
jne 0x4164b4
cmp byte [esi + 0x10d], 0
je 0x4164a7
cmp byte [esi + 0x9c], 0
jne 0x4164b4
cmp dword [ebp + 0x14], 0
jne 0x4163cc
cmp byte [esi + 0x125], 0
je 0x415fc2
push ebx
lea ebx, [esi + 0x78]
mov ecx, ebx
call fcn.00417cb9
mov edi, dword [ebp + 0xc]
cmp dword [esi + 0x60], 0
je 0x4164ee
cmp dword [esi + 0x68], 0
jne 0x41641a
push 0x10
call fcn.004a8eb3
mov edi, eax
mov dword [ebp + 8], edi
pop ecx
push edi
and dword [edi + 4], 0
mov dword [edi], vtable.CGetProp.0
mov dword [esi + 0x64], edi
mov eax, dword [edi]
call dword [eax + 4]
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x416417
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x68], edi
mov ecx, dword [esi + 0x64]
mov edx, ebx
mov eax, dword [esi + 0x14]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x64]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xc], ecx
lea ecx, [ebp - 0x1c]
call fcn.00419bcd
mov byte [ebp - 4], 9
cmp byte [esi + 0x9c], 0
je 0x416473
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0
jne 0x41645a
cmp byte [esi + 0x10d], 0
jne 0x416464
cmp dword [esi + 0x54], 4
je 0x416464
push 0x3a
lea ecx, [ebp - 0x1c]
call fcn.00401b13
lea eax, [esi + 0x90]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402eda
push dword [esi + 0x68]
mov edx, dword [esi + 0x60]
xor ecx, ecx
push dword [ebp + 0x14]
cmp byte [esi + 0x9e], cl
mov esi, dword [ebp + 0x10]
mov eax, dword [edx]
setne cl
push esi
push ecx
push dword [ebp - 0x1c]
push edx
call dword [eax + 0x10]
push dword [ebp - 0x1c]
mov esi, eax
call fcn.004a8d17
pop ecx
mov eax, esi
jmp 0x41734c
cmp byte [esi + 0x9f], 0
je 0x4163b9
xor edi, edi
test ecx, ecx
je 0x4164e7
mov eax, dword [edx]
mov eax, dword [eax + edi*4]
mov edx, dword [eax]
mov eax, dword [esi + 0x110]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax]
call fcn.004038e5
test eax, eax
jne 0x4163b9
mov ecx, dword [esi + 0x114]
lea edx, [esi + 0x78]
inc edi
cmp edi, ecx
jb 0x4164ba
mov ebx, ecx
jmp 0x4163cc
xor ebx, ebx
mov eax, ebx
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 0xa
cmp dword [ebp + 0x14], ebx
jne 0x416538
cmp byte [esi + 0x125], bl
jne 0x416538
cmp byte [esi + 0x124], bl
je 0x4165af
push 0x10
call fcn.004a8eb3
pop ecx
push eax
lea ecx, [ebp - 0x48]
mov dword [ebp + 0xc], eax
mov dword [eax + 4], ebx
mov dword [eax], vtable.CStdOutFileStream.0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
call fcn.0040aa0d
mov eax, dword [ebp - 0x48]
cmp dword [esi + 0x108], 0
je 0x41658b
cmp dword [ebp + 0x14], 0
je 0x41654d
cmp dword [ebp + 0x14], 1
jne 0x41658b
mov ecx, dword [esi + 0x104]
push eax
add ecx, 8
call fcn.0040aa0d
push dword [esi + 0x108]
lea ecx, [ebp - 0x48]
call fcn.0040aa0d
mov edi, dword [esi + 0x104]
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
mov byte [edi + 0x18], 1
mov byte [esi + 0x10c], 1
test eax, eax
je 0x416598
mov esi, dword [ebp + 0x10]
mov ecx, eax
mov eax, ebx
mov dword [esi], ecx
mov byte [ebp - 4], 0x48
test eax, eax
je 0x4162cd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4162cd
xor eax, eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x4c]
lea edx, [ebp - 0x20]
push edx
push 9
mov byte [ebp - 4], 0xb
mov eax, dword [ecx]
push edi
push ecx
call dword [eax + 0x18]
mov edi, eax
test edi, edi
je 0x4165e9
cmp word [ebp - 0x20], 0
je 0x41733c
lea ecx, [ebp - 0x20]
call fcn.0040870b
jmp 0x41733c
mov cx, word [ebp - 0x20]
push 0x13
pop eax
cmp cx, ax
jne 0x416607
mov eax, dword [ebp - 0x18]
mov dword [esi + 0xe0], eax
mov byte [esi + 0xe7], 1
jmp 0x416616
test cx, cx
jne 0x41732f
mov byte [esi + 0xe7], bl
mov byte [ebp - 4], 0xa
test cx, cx
je 0x416627
lea ecx, [ebp - 0x20]
call fcn.0040870b
mov edi, dword [ebp + 0xc]
lea ecx, [esi + 0xe4]
push ecx
lea eax, [esi + 0xc8]
mov ecx, esi
push eax
push 0xa
push edi
call fcn.00415a3e
test eax, eax
je 0x41664d
mov edi, eax
jmp 0x41733c
lea ebx, [esi + 0xe5]
mov ecx, esi
push ebx
lea eax, [esi + 0xd0]
push eax
push 0xb
push edi
call fcn.00415a3e
test eax, eax
jne 0x416646
lea eax, [esi + 0xe6]
push eax
lea ecx, [esi + 0xd8]
push ecx
push 0xc
push edi
mov ecx, esi
call fcn.00415a3e
test eax, eax
jne 0x416646
mov byte [ebp - 0x21], al
lea ecx, [ebp - 0x21]
mov eax, dword [esi + 0x14]
mov edx, edi
push ecx
push 0x15
mov ecx, dword [eax]
call fcn.0041cc66
pop ecx
pop ecx
test eax, eax
jne 0x416646
cmp byte [esi + 0x9c], al
je 0x4166bf
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0
jne 0x4166bf
cmp byte [esi + 0x10d], 0
jne 0x4166de
cmp dword [esi + 0x54], 4
je 0x4166de
movzx eax, byte [esi + 0x9f]
lea edi, [esi + 0x78]
cmp dword [esi + 0x54], 3
mov dl, byte [esi + 0x5c]
push eax
push edi
sete cl
call fcn.00419a50
pop ecx
pop ecx
jmp 0x4166e1
lea edi, [esi + 0x78]
cmp byte [esi + 0x9c], 0
je 0x41678d
lea eax, [esi + 0x90]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402be8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x12
call fcn.004198dd
mov eax, dword [ebp - 0x38]
mov bl, 1
cmp dword [eax], 0
jne 0x41672d
mov ecx, edi
call fcn.00417d04
cmp byte [esi + 0x10d], 0
jne 0x416729
cmp dword [esi + 0x54], 4
jne 0x416748
xor bl, bl
jmp 0x416748
cmp dword [esi + 0x54], 3
jne 0x41674b
mov ecx, edi
call fcn.00403cba
mov ecx, dword [ebp - 0x38]
cmp eax, dword [ecx]
jne 0x416748
mov ecx, edi
call fcn.00417d04
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
mov eax, dword [edi]
mov edi, dword [eax + ecx*4 - 4]
test bl, bl
je 0x41676f
cmp byte [esi + 0x20], 0
push 0x3a
pop eax
push 0x5f
pop ecx
cmovne eax, ecx
mov ecx, edi
movzx eax, ax
push eax
call fcn.00401b13
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
call fcn.00402eda
mov byte [ebp - 4], 0xa
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
lea ebx, [esi + 0xe5]
lea edi, [esi + 0x78]
mov edx, edi
lea ecx, [ebp - 0x44]
call fcn.00419bcd
mov byte [ebp - 4], 0x13
cmp byte [ebp - 0x21], 0
jne 0x41688c
cmp byte [esi + 0x9e], 0
mov eax, dword [ebp - 0x38]
jne 0x4167c7
cmp dword [eax], 0
je 0x41688c
mov ecx, edi
call fcn.00403d2e
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0
je 0x41688c
lea ecx, [ebp - 0x1c]
call fcn.00402b1a
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x14
push eax
push edi
mov ecx, esi
call fcn.00415989
cmp byte [esi + 0x9e], 0
je 0x41687f
lea eax, [ebp - 0x1c]
push eax
lea ecx, [esi + 0x144]
call fcn.00401bdc
push dword [ebp + 0xc]
lea ecx, [esi + 0x150]
call fcn.00401c32
cmp byte [esi + 0xc4], 0
je 0x41682c
cmp byte [esi + 0xe6], 0
je 0x41682c
lea eax, [esi + 0xd8]
jmp 0x41683d
mov eax, dword [esi + 0x14]
cmp byte [eax + 0xa4], 0
je 0x416841
add eax, 0x9c
xor edx, edx
jmp 0x416845
xor edx, edx
mov eax, edx
cmp byte [esi + 0xc3], 0
je 0x416859
cmp byte [ebx], 0
lea ecx, [esi + 0xd0]
jne 0x41685b
mov ecx, edx
cmp byte [esi + 0xc2], 0
je 0x416873
cmp byte [esi + 0xe4], 0
je 0x416873
lea edx, [esi + 0xc8]
push eax
push ecx
mov ecx, dword [ebp - 0x1c]
call fcn.00404cd4
pop ecx
pop ecx
mov byte [ebp - 4], 0x13
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x30]
call fcn.00402be8
mov byte [ebp - 4], 0x15
cmp dword [esi + 0x54], 3
jne 0x4168ae
mov ecx, dword [ebp - 0x44]
call fcn.00407474
test al, al
jne 0x4168d8
lea eax, [ebp - 0x30]
push eax
lea edx, [esi + 0x3c]
lea ecx, [ebp - 0x1c]
call fcn.00415dfc
pop ecx
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x16
call fcn.00402ccc
mov byte [ebp - 4], 0x15
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
cmp byte [esi + 0x9c], 0
je 0x41696a
mov eax, dword [esi + 0xa0]
cmp eax, 0xffffffff
je 0x41696a
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x20], eax
call fcn.00402b1a
lea eax, [ebp - 0x20]
lea edi, [esi + 0x1b4]
push eax
mov ecx, edi
call fcn.00417b3b
push dword [ebp - 0x1c]
mov ebx, eax
call fcn.004a8d17
pop ecx
test ebx, ebx
js 0x41696a
mov ecx, dword [edi]
mov eax, dword [ecx + ebx*4]
lea ecx, [ebp - 0x30]
add eax, 4
push eax
call fcn.00402ccc
push 0x3a
lea ecx, [ebp - 0x30]
call fcn.00401b13
lea eax, [esi + 0x90]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402be8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x17
call fcn.004198dd
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x30]
call fcn.00402eda
mov byte [ebp - 4], 0x15
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
xor ebx, ebx
mov byte [ebp - 0x31], bl
cmp byte [esi + 0x9e], bl
je 0x4169bc
lea eax, [ebp - 0x30]
lea edi, [esi + 0xac]
push eax
mov ecx, edi
call fcn.00402ccc
mov bl, byte [ebp - 0x21]
test bl, bl
je 0x416996
mov ecx, dword [edi]
call fcn.00404e15
cmp dword [esi + 0x1ac], 0
jne 0x416d91
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
pop ecx
pop ecx
xor edi, edi
jmp 0x41733c
cmp byte [esi + 0xc0], bl
jne 0x416d88
lea ecx, [ebp - 0x98]
call fcn.00405bdd
lea ecx, [ebp - 0x70]
call fcn.00402b1a
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x98]
push dword [ebp - 0x30]
call fcn.00405c74
test al, al
je 0x416cee
mov eax, dword [esi + 0x58]
mov ecx, eax
sub ecx, ebx
je 0x416a2a
dec ecx
sub ecx, 1
jne 0x416b86
push dword [ebp - 0x70]
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0xc
mov edi, ebx
jmp 0x41733c
lea ecx, [ebp - 0x30]
call fcn.00402fce
inc eax
lea ecx, [ebp - 0x30]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00414bdc
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x58]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [eax + 4]
push dword [eax]
call fcn.00402a7d
mov byte [ebp - 4], 0x1d
push dword [ebp - 0x1c]
call fcn.004a8d17
mov edx, dword [esi + 0x28]
lea eax, [ebp - 0x5c]
pop ecx
push eax
xor eax, eax
lea edi, [esi + 0xf0]
cmp byte [esi + 0xf8], al
mov ecx, dword [edx]
cmovne eax, edi
lea edi, [esi + 0xd8]
push eax
xor eax, eax
cmp byte [esi + 0xe6], al
cmovne eax, edi
mov edi, dword [ebp - 0x58]
push eax
push dword [esi + 0x6c]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x80]
push eax
push edi
push edx
call dword [ecx + 0x14]
mov ebx, eax
test ebx, ebx
je 0x416ad3
push edi
call fcn.004a8d17
push dword [ebp - 0x70]
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0x10
jmp 0x416a23
mov eax, dword [ebp - 0x5c]
xor ebx, ebx
sub eax, ebx
je 0x416b78
sub eax, 1
je 0x416b71
sub eax, 1
je 0x416aad
sub eax, 1
je 0x416b65
sub eax, 1
je 0x416b5c
sub eax, 1
je 0x416b31
sub eax, 1
je 0x416b28
push edi
call fcn.004a8d17
push dword [ebp - 0x70]
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0x10
jmp 0x417337
mov dword [esi + 0x58], 5
jmp 0x416b78
push edi
call fcn.004a8d17
push dword [ebp - 0x70]
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0x10
mov edi, 0x80004004
jmp 0x41733c
mov dword [esi + 0x58], 3
jmp 0x416b78
mov dword [esi + 0x58], 2
jmp 0x416aad
mov dword [esi + 0x58], 1
push edi
mov byte [ebp - 4], 0x19
call fcn.004a8d17
mov eax, dword [esi + 0x58]
pop ecx
cmp eax, 5
je 0x416c9a
cmp eax, 3
je 0x416c9a
cmp eax, 4
jne 0x416c32
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402be8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x25
call fcn.0040a02d
test al, al
jne 0x416bff
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
push str.Can_not_create_file_with_auto_name
call fcn.00415adf
push dword [ebp - 0x1c]
mov edi, eax
call fcn.004a8d17
push dword [ebp - 0x70]
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0x10
test edi, edi
jne 0x41733c
jmp 0x417337
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
call fcn.00404e90
test al, al
jne 0x416c24
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
lea eax, [ebp - 0x1c]
push eax
push str.Can_not_rename_existing_file
call fcn.00415bc5
jmp 0x416bcd
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
jmp 0x416cdc
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x30]
shr eax, 4
test al, 1
je 0x416c86
call fcn.00404e15
test al, al
jne 0x416cdc
lea eax, [ebp - 0x30]
push eax
push str.Can_not_delete_output_folder
mov ecx, esi
call fcn.00415b35
push dword [ebp - 0x70]
mov edi, eax
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0xc
test edi, edi
jne 0x41733c
jmp 0x416a23
call fcn.0040536a
test al, al
jne 0x416cdc
lea eax, [ebp - 0x30]
push eax
push str.Can_not_delete_output_file
jmp 0x416c55
lea ecx, [ebp - 0x30]
call fcn.0040a02d
test al, al
jne 0x416cd8
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
push str.Can_not_create_file_with_auto_name
call fcn.00415adf
push dword [ebp - 0x70]
mov edi, eax
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0xc
jmp 0x416bf2
mov byte [ebp - 0x31], 1
cmp dword [esi + 0x58], 5
jne 0x416d7b
mov dword [esi + 0x58], ebx
jmp 0x416d7b
mov ecx, dword [ebp - 0x30]
call fcn.0040748e
mov edi, eax
test edi, edi
js 0x416d7b
cmp word [ecx + edi*2 + 2], bx
je 0x416d7b
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402be8
mov byte [ebp - 4], 0x2e
cmp edi, dword [ebp - 0x18]
jae 0x416d24
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [ebp - 0x18], edi
mov word [eax + edi*2], cx
lea ecx, [ebp - 0xd8]
call fcn.00405bdd
lea ecx, [ebp - 0xb0]
call fcn.00402b1a
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0xd8]
push dword [ebp - 0x1c]
call fcn.00405c74
test al, al
je 0x416d66
mov edx, dword [ebp - 0xb8]
test dl, 1
je 0x416d66
mov ecx, dword [ebp - 0x1c]
and edx, 0xfffffffe
call fcn.00404d93
push dword [ebp - 0xb0]
call fcn.004a8d17
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
pop ecx
mov byte [ebp - 4], 0x15
push dword [ebp - 0x70]
call fcn.004a8d17
pop ecx
mov bl, byte [ebp - 0x21]
lea edi, [esi + 0xac]
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.00402ccc
test bl, bl
jne 0x4172ff
mov eax, dword [esi + 0x1ac]
test eax, eax
je 0x417006
lea ecx, [ebp - 0x58]
call fcn.00402b1a
mov byte [ebp - 4], 0x30
cmp byte [ebp + 0xb], bl
je 0x416de8
lea edx, [esi + 0x6c]
lea ecx, [ebp - 0x1c]
call fcn.00415c4e
push eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x31
call fcn.00402ccc
mov byte [ebp - 4], 0x30
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
lea ebx, [esi + 0x1a8]
push ebx
lea ecx, [ebp - 0x58]
call fcn.00402eda
lea ecx, [ebp - 0x58]
call fcn.00415ca3
test al, al
jne 0x416e3d
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
push str.Dangerous_link_path_was_ignored
call fcn.00415adf
mov edi, eax
test edi, edi
je 0x416feb
push dword [ebp - 0x58]
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0xc
jmp 0x41733c
lea ecx, [ebp - 0x1c]
call fcn.00402b1a
cmp byte [ebp - 0x22], 0
mov byte [ebp - 4], 0x33
jne 0x416ea5
cmp byte [ebp + 0xb], 0
je 0x416ea5
push ebx
lea ecx, [ebp - 0x1c]
call fcn.00402ccc
cmp dword [ebp - 0x18], 0
je 0x416fe2
cmp byte [ebp - 0x22], 0
je 0x416ef7
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
call fcn.00404f5a
test al, al
jne 0x416fe2
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
push str.Can_not_create_hard_link
call fcn.00415bc5
mov edi, eax
test edi, edi
je 0x416fe2
jmp 0x416ecf
mov edx, dword [ebp - 0x58]
lea eax, [ebp - 0x1c]
mov ecx, dword [esi + 0x48]
push eax
call fcn.00407ccf
pop ecx
test al, al
jne 0x416e5e
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
push str.Incorrect_path
call fcn.00415adf
mov edi, eax
test edi, edi
je 0x416e5e
push dword [ebp - 0x1c]
call fcn.004a8d17
push dword [ebp - 0x58]
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0x10
jmp 0x41733c
cmp byte [esi + 0x1a], 0
je 0x416fe2
xor eax, eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0x60]
push dword [ebp - 0x9c]
mov edx, dword [ebp - 0x1c]
call fcn.00406a81
pop ecx
test al, al
je 0x416fd8
lea ecx, [ebp - 0x80]
call fcn.00414c19
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x80]
push dword [ebp - 0x5c]
mov edi, dword [ebp - 0x60]
push edi
call fcn.00406c28
test al, al
jne 0x416f9a
lea eax, [esi + 0x6c]
mov ecx, esi
push eax
push str.Internal_error_for_symbolic_link_file
call fcn.00415adf
mov ebx, eax
test ebx, ebx
je 0x416fc4
push dword [ebp - 0x6c]
call fcn.004a8d17
push dword [ebp - 0x78]
call fcn.004a8d17
push edi
call fcn.004a8d17
push dword [ebp - 0x1c]
call fcn.004a8d17
push dword [ebp - 0x58]
call fcn.004a8d17
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
add esp, 0x1c
jmp 0x416a23
push dword [ebp - 0x5c]
mov dl, byte [esi + 0x9e]
mov ecx, dword [ebp - 0x30]
push edi
call fcn.00406fc2
pop ecx
pop ecx
test al, al
jne 0x416fc4
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
push str.Can_not_create_symbolic_link
call fcn.00415b35
jmp 0x416f56
push dword [ebp - 0x6c]
call fcn.004a8d17
push dword [ebp - 0x78]
call fcn.004a8d17
pop ecx
pop ecx
jmp 0x416fdb
mov edi, dword [ebp - 0x60]
push edi
call fcn.004a8d17
pop ecx
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
mov byte [ebp - 4], 0x15
push dword [ebp - 0x58]
call fcn.004a8d17
mov eax, dword [esi + 0x1ac]
pop ecx
test eax, eax
jne 0x4172ff
xor ebx, ebx
cmp dword [esi + 0x194], ebx
je 0x4170b4
cmp byte [esi + 0x9c], bl
jne 0x4170b4
mov edx, dword [ebp + 0xc]
lea eax, [ebp + 0xb]
mov ecx, dword [ebp - 0x4c]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00415204
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x417052
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
pop ecx
pop ecx
jmp 0x41733c
cmp byte [ebp + 0xb], bl
je 0x4170b4
mov edi, dword [esi + 0x194]
test edi, edi
je 0x41708e
mov dword [ebp + 8], edi
lea ecx, [ebp - 0x20]
add edi, ebx
shr edi, 1
mov eax, edi
shl eax, 4
add eax, dword [esi + 0x190]
push eax
call fcn.004151bf
test eax, eax
je 0x417091
lea ecx, [edi + 1]
cmovns edi, dword [ebp + 8]
cmovns ebx, ecx
cmp ebx, edi
jne 0x417061
or edi, 0xffffffff
xor ebx, ebx
test edi, edi
js 0x4170b4
mov eax, dword [esi + 0x19c]
mov edi, dword [eax + edi*4]
cmp dword [edi + 4], ebx
jne 0x417157
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.00402ccc
push 0x20
call fcn.004a8eb3
mov edi, eax
mov dword [ebp + 8], edi
pop ecx
push edi
mov dword [edi + 4], ebx
mov dword [edi], vtable.COutFileStream.0
or dword [edi + 8], 0xffffffff
mov dword [esi + 0xfc], edi
mov eax, dword [edi]
mov dword [ebp + 8], edi
call dword [eax + 4]
push 4
pop ecx
push 2
mov byte [ebp - 4], 0x3d
cmp byte [esi + 0xc0], 0
mov eax, dword [ebp - 0x30]
pop edx
push 0x80
cmovne edx, ecx
mov ecx, dword [esi + 0xfc]
push edx
push 1
push 0x40000000
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x1c], ebx
add ecx, 8
push eax
call fcn.00406405
test al, al
jne 0x4171b4
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
push str.Can_not_open_output_file
call fcn.00415b35
mov esi, eax
test esi, esi
je 0x417193
mov byte [ebp - 4], 0x3e
mov ecx, dword [edi]
push edi
call dword [ecx + 8]
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
pop ecx
pop ecx
mov edi, esi
jmp 0x41733c
mov edx, dword [edi]
mov ecx, dword [ebp - 0x30]
call fcn.00404f5a
test al, al
jne 0x4172ff
push edi
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
push str.Can_not_create_hard_link
call fcn.00415bc5
push dword [ebp - 0x30]
mov edi, eax
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
pop ecx
pop ecx
jmp 0x416c79
mov byte [ebp - 4], 0x40
mov eax, dword [edi]
push edi
call dword [eax + 8]
push dword [ebp - 0x30]
call fcn.004a8d17
push dword [ebp - 0x44]
call fcn.004a8d17
pop ecx
pop ecx
jmp 0x416a23
cmp byte [esi + 0x22], 0
je 0x417245
cmp byte [esi + 0xc0], 0
jne 0x417245
cmp byte [esi + 0xf8], 0
je 0x417245
lea eax, [esi + 0xf0]
cmp dword [eax + 4], ebx
ja 0x4171e3
cmp dword [eax], 0x1000
jbe 0x417245
push dword [eax + 4]
mov ecx, dword [esi + 0xfc]
push dword [eax]
push 8
pop eax
add ecx, eax
call fcn.00406a24
mov ecx, dword [esi + 0xfc]
mov bl, al
push 8
pop eax
add ecx, eax
mov byte [esi + 0xf9], bl
lea eax, [ebp - 0xa0]
push eax
xor eax, eax
push eax
push eax
push eax
call fcn.00406531
test bl, bl
jne 0x417245
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
push str.Can_not_set_length_for_output_file
call fcn.00415b35
mov ebx, eax
test ebx, ebx
je 0x417245
mov byte [ebp - 4], 0x42
mov ecx, dword [edi]
push edi
call dword [ecx + 8]
jmp 0x41719d
cmp byte [ebp - 0x31], 0
je 0x4172ad
cmp byte [esi + 0x9c], 0
jne 0x4172ad
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x30]
push eax
call fcn.00402be8
mov byte [ebp - 4], 0x44
lea ebx, [esi + 0x1b4]
mov eax, dword [esi + 0x1b8]
mov ecx, ebx
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x20]
push eax
call fcn.00417aac
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [esi + 0x1b8]
jne 0x4172a0
mov ecx, dword [ebx]
mov ecx, dword [ecx + eax*4]
lea eax, [ebp - 0x30]
push eax
add ecx, 4
call fcn.00402ccc
mov byte [ebp - 4], 0x3d
push dword [ebp - 0x1c]
call fcn.004a8d17
pop ecx
cmp byte [esi + 0xc0], 0
je 0x4172e1
mov eax, dword [esi + 0xfc]
xor edx, edx
push edx
push edx
push dword [esi + 0xbc]
mov ecx, dword [eax]
push dword [esi + 0xb8]
push eax
call dword [ecx + 0x10]
mov ebx, eax
test ebx, ebx
je 0x4172e1
mov byte [ebp - 4], 0x45
jmp 0x41723a
lea ebx, [esi + 0x100]
push edi
mov ecx, ebx
call fcn.0040aa0d
mov byte [ebp - 4], 0x47
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [ebp - 4], 0x15
jmp 0x417305
lea ebx, [esi + 0x100]
push dword [ebx]
lea ecx, [ebp - 0x48]
call fcn.0040aa0d
push dword [ebp - 0x30]
call fcn.004a8d17
mov byte [ebp - 4], 0xa
push dword [ebp - 0x44]
call fcn.004a8d17
mov eax, dword [ebp - 0x48]
xor ebx, ebx
pop ecx
pop ecx
jmp 0x416538
lea ecx, [ebp - 0x20]
call fcn.0040870b
mov edi, 0x80004005
jmp 0x415fa3
call fcn.004a9bf7
ret 0x10