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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea eax, [ebp - 0x26]
sub esp, 0x3c
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 8], eax
movzx eax, byte [ebx + 0x33]
xor eax, 1
movzx eax, al
mov dword [esp + 4], eax
lea eax, [ebx + 0xc]
mov dword [esp], eax
call fcn.004b8690
sub esp, 0xc
test al, al
mov byte [ebp - 0x31], al
je 0x4d16e0
movzx edi, byte [ebp - 0x26]
mov eax, edi
test al, al
je 0x4d16cd
movzx eax, byte [ebx + 0x30]
test al, al
mov byte [ebp - 0x31], al
je 0x4d16cd
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
test esi, esi
je 0x4d1700
cmp esi, 0x1fffffff
ja 0x4d180d
lea eax, [esi*4]
mov dword [esp], eax
mov dword [ebp - 0x30], eax
call fcn.006fec20
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], eax
xor esi, esi
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + esi]
mov dword [esp], 0xc
mov dword [ebp - 0x2c], eax
call fcn.006fec40
mov edi, eax
mov eax, dword [ebp - 0x2c]
mov ecx, edi
mov dword [esp], eax
call fcn.00474110
mov eax, dword [ebp - 0x20]
sub esp, 4
add esi, 4
cmp dword [ebp - 0x30], esi
mov ecx, dword [ebp - 0x24]
lea edx, [eax + 1]
mov dword [ebp - 0x20], edx
mov dword [ecx + eax*4], edi
jne 0x4d15b0
test edx, edx
je 0x4d1700
mov eax, dword [ebp - 0x24]
mov edi, dword [eax + edx*4 - 4]
mov eax, dword [edi + 4]
cmp dword [edi + 8], eax
je 0x4d1740
mov edx, dword [edi]
mov ecx, 0x3a
xor esi, esi
add ebx, 0x24
mov word [edx + eax*2], cx
mov word [edx + eax*2 + 2], si
add eax, 1
mov dword [edi + 4], eax
mov ecx, edi
mov dword [esp], ebx
lea esi, [ebp - 0x24]
call fcn.004747a0
lea eax, [ebp - 0x25]
mov ecx, dword [ebp + 8]
sub esp, 4
mov dword [esp + 4], 1
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.004b8690
sub esp, 0xc
test al, al
mov edi, eax
je 0x4d1731
movzx eax, byte [ebp - 0x25]
mov byte [ebp - 0x26], al
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
test ebx, ebx
je 0x4d16b6
lea edx, [ebx*4 - 4]
mov dword [ebp - 0x2c], edx
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [ebp - 0x2c]
sub ebx, 1
mov esi, dword [eax + ecx]
test esi, esi
je 0x4d16ae
mov eax, dword [esi]
test eax, eax
je 0x4d169b
mov dword [esp], eax
call fcn.006febd0
mov dword [esp + 4], 0xc
mov dword [esp], esi
call fcn.006fec10
mov eax, dword [ebp - 0x24]
sub dword [ebp - 0x2c], 4
test ebx, ebx
jne 0x4d1680
test eax, eax
je 0x4d16c2
mov dword [esp], eax
call fcn.006febd0
mov eax, edi
test al, al
movzx eax, byte [ebp - 0x26]
cmovne edi, eax
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
movzx edi, byte [ebx + 0x30]
mov eax, edi
test al, al
jne 0x4d156a
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0xc
lea esi, [ebp - 0x24]
call fcn.006fec40
mov ecx, eax
mov edi, eax
call fcn.00473f00
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
lea edx, [eax + 1]
je 0x4d1752
mov esi, dword [ebp - 0x24]
mov dword [esi + eax*4], edi
mov dword [ebp - 0x20], edx
jmp 0x4d15f6
movzx edi, byte [ebp - 0x31]
jmp 0x4d1662
mov ecx, edi
lea esi, [ebp - 0x24]
call fcn.004739d0
mov eax, dword [edi + 4]
jmp 0x4d1609
shr eax, 2
add eax, edx
cmp eax, 0x1fffffff
mov dword [ebp - 0x2c], eax
ja 0x4d17b6
shl eax, 2
lea esi, [ebp - 0x24]
mov dword [esp], eax
call fcn.006fec20
mov esi, eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
test eax, eax
jne 0x4d1790
test edx, edx
jne 0x4d17a9
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], esi
lea edx, [eax + 1]
mov dword [ebp - 0x1c], ecx
jmp 0x4d1726
shl eax, 2
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [ebp - 0x30], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x30]
mov dword [esp], edx
call fcn.006febd0
mov eax, dword [ebp - 0x20]
jmp 0x4d177f
lea esi, [ebp - 0x24]
call fcn.006ff430
lea esi, [ebp - 0x24]
mov dword [esp + 4], 0xc
mov dword [esp], edi
mov ebx, eax
call fcn.006fec10
mov ecx, esi
call fcn.00607eb0
mov dword [esp], ebx
call fcn.005e6130
mov ebx, eax
jmp 0x4d17d3
call fcn.006ff430
lea esi, [esi]
lea edi, [edi]
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x11c
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov esi, dword [ebx + 0x108]
test esi, esi
je 0x4d1861
mov esi, dword [ebx + 0x104]
mov eax, dword [esi + 8]
test eax, eax
je 0x4d1861
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov dword [esi + 8], 0
mov eax, dword [ebx + 0x100]
mov byte [ebx + 0x10c], 0
test eax, eax
je 0x4d1887
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov dword [ebx + 0x100], 0
mov eax, dword [ebp + 0xc]
xor edx, edx
mov byte [ebx + 0xc5], 0
mov dword [ebx + 0xb8], 0
mov dword [ebx + 0xbc], 0
xor ecx, ecx
mov byte [ebx + 0xc0], 0
mov dword [ebx + 0xf0], 0
mov dword [ebx + 0xe8], eax
mov eax, dword [ebx + 0xac]
mov dword [ebx + 0xf4], 0
mov byte [ebx + 0xf8], 0
mov byte [ebx + 0xf9], 0
mov dword [ebx + 0xb0], 0
mov word [eax], dx
mov eax, dword [ebx + 0x1a8]
mov dword [ebx + 0x1ac], 0
mov word [eax], cx
movzx eax, byte [ebx + 0x11c]
mov ecx, dword [ebx + 0x14]
test al, al
mov esi, dword [ecx]
mov byte [ebx + 0xa4], al
je 0x4d192c
mov eax, dword [ebx + 0x120]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x4d1960
cmp eax, 3
je 0x4d1960
movzx eax, byte [ebx + 0x21]
lea edi, [ebx + 0x6c]
mov byte [ebx + 0x9d], al
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.004a4800
sub esp, 8
test eax, eax
mov dword [ebp - 0xd0], eax
je 0x4d1970
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [ebx + 0xa8], 0xffffffff
jmp 0x4d192c
lea edx, [ebp - 0x50]
mov eax, dword [esi]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x48], 0
mov dword [esp + 8], 0x1d
mov dword [esp + 0xc], edx
mov edx, dword [ebp + 0xc]
mov dword [esp], esi
mov dword [esp + 4], edx
call dword [eax + 0x18]
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d1d6a
movzx eax, word [ebp - 0x50]
test ax, ax
je 0x4d19e3
cmp ax, 0x15
mov dword [ebp - 0xd0], 0x80004005
jne 0x4d1d6a
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov byte [ebx + 0xc0], 1
mov dword [ebx + 0xb8], eax
mov dword [ebx + 0xbc], edx
lea ecx, [ebp - 0x50]
call fcn.004c0970
lea edx, [ebp - 0x50]
mov eax, dword [esi]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x48], 0
mov dword [esp + 8], 0x5a
mov dword [esp + 0xc], edx
mov edx, dword [ebp + 0xc]
mov dword [esp], esi
mov dword [esp + 4], edx
call dword [eax + 0x18]
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d1d6a
movzx eax, word [ebp - 0x50]
cmp ax, 8
je 0x4d1d82
test ax, ax
jne 0x4d1d60
mov byte [ebp - 0xd8], 0
lea ecx, [ebp - 0x50]
call fcn.004c0970
lea edx, [ebp - 0x50]
mov eax, dword [esi]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x48], 0
mov dword [esp + 8], 0x36
mov dword [esp + 0xc], edx
mov edx, dword [ebp + 0xc]
mov dword [esp], esi
mov dword [esp + 4], edx
call dword [eax + 0x18]
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d1d6a
movzx eax, word [ebp - 0x50]
cmp ax, 8
je 0x4d1e17
test ax, ax
jne 0x4d1d60
mov byte [ebp - 0xdc], 0
lea ecx, [ebp - 0x50]
call fcn.004c0970
mov eax, dword [ebx + 0x1ac]
test eax, eax
je 0x4d1da2
mov byte [ebp - 0xe0], 0
lea eax, [ebx + 0x1a8]
mov dword [esp + 4], 0x5c
mov dword [esp], 0x2f
mov ecx, eax
mov dword [ebp - 0xe4], eax
call fcn.00474f80
sub esp, 8
mov dword [esp + 4], 0x749a06
mov eax, dword [ebx + 0x1a8]
mov dword [esp], eax
call fcn.00471d80
test al, al
je 0x4d1b21
mov ecx, dword [ebp - 0xe4]
mov dword [esp], 4
call fcn.004752b0
mov byte [ebp - 0xdc], 0
sub esp, 4
movzx eax, byte [ebp - 0xdc]
mov dword [ebp - 0xdc], esi
mov esi, eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xd0], eax
jmp 0x4d1b53
mov ecx, dword [ebp - 0xd0]
mov dword [esp], eax
xor esi, esi
call fcn.004752b0
sub esp, 4
mov eax, dword [ebx + 0x1a8]
mov dword [esp], eax
call fcn.004bf240
test eax, eax
jne 0x4d1b40
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx + 0x1ac]
mov edx, esi
mov esi, dword [ebp - 0xdc]
test eax, eax
sete al
or al, dl
mov byte [ebp - 0xdc], al
jne 0x4d1e3e
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x4d1f31
lea eax, [ebx + 0xc5]
mov dword [esp + 8], 0xf
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
call fcn.004a35d0
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d1955
lea eax, [ebx + 0xf0]
mov ecx, dword [ebx + 0x14]
mov edx, eax
mov dword [ebp - 0xe4], eax
lea eax, [ebx + 0xf8]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xe8]
mov dword [esp], eax
call fcn.004a4d60
sub esp, 0xc
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d1955
cmp byte [ebx + 0x1e], 0
jne 0x4d1c1a
cmp byte [ebx + 0x9c], 0
jne 0x4d1f22
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4d1c4c
lea edx, [ebp - 0xa4]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], edx
call fcn.004d0d40
test al, al
je 0x4d1f22
cmp byte [ebp - 0xa4], 0
je 0x4d1f22
cmp byte [ebx + 0x11c], 0
lea eax, [ebx + 0x78]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0x7c]
je 0x4d2153
test eax, eax
je 0x4d1c8c
mov edx, dword [ebx + 0x54]
cmp edx, 4
je 0x4d2382
cmp edx, 2
je 0x4d238f
xor eax, eax
lea ecx, [ebx + 0x78]
mov dword [esp], eax
call fcn.00607c70
push eax
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x4d2191
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x4d22ea
mov eax, dword [ebx + 0x64]
mov edx, dword [ebx + 0x14]
mov edi, dword [ebp + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov eax, dword [ebp - 0xe8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004a1e00
cmp byte [ebx + 0x9c], 0
je 0x4d1d06
cmp dword [ebx + 0x7c], 0
jne 0x4d1ce4
cmp byte [ebx + 0x10d], 0
jne 0x4d1cf4
cmp dword [ebx + 0x54], 4
je 0x4d1cf4
lea ecx, [ebp - 0x50]
mov dword [esp], 0x3a
call fcn.00636c70
push edx
lea eax, [ebx + 0x90]
lea ecx, [ebp - 0x50]
mov dword [esp], eax
call fcn.004747a0
push ecx
mov eax, dword [ebx + 0x60]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebx + 0x68]
mov edx, dword [eax]
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], edi
movzx ecx, byte [ebx + 0x9e]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x50]
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x50]
sub esp, 0x18
test eax, eax
je 0x4d1ea3
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0xd0]
jmp 0x4d1955
mov dword [ebp - 0xd0], 0x80004005
lea ecx, [ebp - 0x50]
call fcn.004c0970
mov eax, dword [ebp - 0xd0]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [ebp - 0x48]
lea ecx, [ebx + 0x1a8]
mov dword [esp], eax
call fcn.00474380
sub esp, 4
mov byte [ebp - 0xd8], 1
jmp 0x4d1a46
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 8]
test eax, eax
je 0x4d1e49
lea ecx, [ebp - 0xa4]
mov edx, dword [eax]
mov dword [esp + 8], 0x59
mov dword [esp + 0x14], ecx
lea ecx, [ebp - 0xb0]
mov dword [esp + 0x10], ecx
lea ecx, [ebp - 0xb8]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebx + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov ecx, dword [ebp - 0xb0]
sub esp, 0x18
test ecx, ecx
je 0x4d1e55
cmp dword [ebp - 0xa4], 1
je 0x4d2095
mov dword [ebp - 0xd0], 0x80004005
mov eax, dword [ebp - 0xd0]
jmp 0x4d1955
mov eax, dword [ebp - 0x48]
lea ecx, [ebx + 0x1a8]
mov dword [esp], eax
call fcn.00474380
sub esp, 4
mov byte [ebp - 0xdc], 1
mov byte [ebp - 0xd8], 0
jmp 0x4d1aa9
mov byte [ebp - 0xdc], dl
jmp 0x4d1b9a
mov byte [ebp - 0xe0], 0
jmp 0x4d1b9a
mov byte [ebp - 0xe0], 0
mov edx, dword [ebx + 0x1ac]
test edx, edx
je 0x4d1b9a
jmp 0x4d1ac6
mov eax, dword [ebp - 0xd0]
jmp 0x4d1955
cmp dword [ebx + 0x108], 0
je 0x4d1f22
cmp dword [ebp + 0x14], 1
jne 0x4d1f22
mov edi, dword [ebx + 0x104]
xor esi, esi
mov eax, dword [edi + 8]
test eax, eax
je 0x4d1ed5
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
push eax
lea eax, [ebx + 0x108]
lea ecx, [ebp - 0xbc]
mov dword [edi + 8], esi
mov dword [esp], eax
call fcn.0063a130
push eax
mov esi, dword [ebx + 0x104]
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx]
call dword [eax]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], 1
mov byte [ebx + 0x10c], 1
mov eax, dword [ebp - 0xbc]
test eax, eax
je 0x4d1f22
mov edi, dword [ebp + 0x10]
mov dword [edi], eax
mov dword [ebp - 0xd0], 0
jmp 0x4d1ea3
lea eax, [ebp - 0x88]
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0xe8], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xe4]
mov dword [esp], eax
call fcn.004b5710
mov eax, dword [ebx + 0x114]
test eax, eax
je 0x4d207f
mov eax, dword [ebp - 0xd0]
mov edx, eax
jmp 0x4d1f9d
add dword [ebp - 0xd0], 1
mov eax, dword [ebx + 0x114]
mov edx, dword [ebp - 0xd0]
cmp edx, eax
jae 0x4d207f
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + edx*4]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x110]
mov eax, dword [eax + edx*4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004b56f0
test eax, eax
je 0x4d1f82
mov eax, dword [ebp - 0xe8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004a1e00
lea eax, [ebp - 0x50]
mov ecx, dword [ebp - 0xe4]
mov dword [esp], eax
call fcn.00474280
mov eax, dword [ebp - 0x50]
sub esp, 4
test eax, eax
je 0x4d1ffb
mov dword [esp], eax
call fcn.006febd0
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
test ecx, ecx
je 0x4d206a
lea edx, [ecx*4 - 4]
mov dword [ebp - 0xe4], esi
mov dword [ebp + 8], ebx
mov ebx, ecx
mov esi, edx
nop
mov edx, dword [eax + esi]
sub ebx, 1
test edx, edx
mov dword [ebp - 0xd0], edx
je 0x4d205a
mov eax, dword [edx]
test eax, eax
je 0x4d203e
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0xd0]
mov dword [esp + 4], 0xc
mov dword [esp], eax
call fcn.006fec10
mov eax, dword [ebp - 0x88]
sub esi, 4
test ebx, ebx
jne 0x4d2020
mov esi, dword [ebp - 0xe4]
mov ebx, dword [ebp + 8]
test eax, eax
je 0x4d1b9a
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d1b9a
mov ecx, dword [ebp - 0xe8]
mov dword [esp], eax
call fcn.00607c70
sub esp, 4
jmp 0x4d1fc3
lea ecx, [ebp - 0x98]
call fcn.00473f00
lea ecx, [ebp - 0x50]
call fcn.00639c00
mov eax, dword [ebp - 0xb0]
lea ecx, [ebp - 0x50]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp], eax
call fcn.004bdf80
test al, al
mov byte [ebp - 0xe0], al
push edx
push edx
je 0x4d2130
lea eax, [ebp - 0x88]
lea edx, [ebp - 0x50]
mov ecx, eax
mov dword [esp], edx
mov dword [ebp - 0xe8], eax
call fcn.004be250
push eax
mov eax, dword [ebp - 0xe8]
lea ecx, [ebx + 0x1a8]
mov dword [esp], eax
call fcn.00474280
mov eax, dword [ebp - 0x88]
push ecx
test eax, eax
je 0x4d2110
mov dword [esp], eax
call fcn.006febd0
cmp dword [ebp - 0x50], 0xa0000003
mov byte [ebp - 0xd8], 0
sete byte [ebp - 0xe0]
cmp dword [ebp - 0x4c], 1
sete byte [ebp - 0xdc]
lea ecx, [ebp - 0x50]
call fcn.00639c50
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x4d1e5c
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d1e5c
test eax, eax
jne 0x4d228e
cmp byte [ebx + 0x9e], 0
jne 0x4d1f22
mov edx, dword [ebx + 0x54]
cmp edx, 1
jbe 0x4d2320
cmp edx, 4
je 0x4d22a1
mov ecx, dword [ebp - 0xe8]
mov dword [esp], eax
call fcn.00607c70
push eax
jmp 0x4d1c8c
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0xbc], 0
jne 0x4d1eae
cmp byte [ebx + 0x125], 0
jne 0x4d2397
movzx eax, byte [ebx + 0x124]
test al, al
mov byte [ebp - 0xe9], al
jne 0x4d23a9
lea edx, [ebp - 0x50]
mov eax, dword [esi]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x48], 0
mov dword [esp + 8], 9
mov dword [esp + 0xc], edx
mov edx, dword [ebp + 0xc]
mov dword [esp], esi
mov dword [esp + 4], edx
call dword [eax + 0x18]
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d3b0c
movzx eax, word [ebp - 0x50]
cmp ax, 0x13
je 0x4d3b19
test ax, ax
jne 0x4d3b02
mov byte [ebx + 0xe7], 0
lea ecx, [ebp - 0x50]
call fcn.004c0970
lea eax, [ebx + 0xc8]
mov dword [esp + 4], 0xa
mov ecx, ebx
mov edx, eax
mov dword [ebp - 0xf0], eax
lea eax, [ebx + 0xe4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.004cfbb0
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
je 0x4d241a
mov eax, dword [ebp - 0xbc]
test eax, eax
je 0x4d1ea3
mov ecx, dword [eax]
mov dword [esp], eax
call dword [ecx + 8]
mov eax, dword [ebp - 0xd0]
push ecx
jmp 0x4d1955
mov edx, dword [ebx + 0x54]
cmp edx, 2
je 0x4d22b2
jb 0x4d2320
cmp edx, 4
jne 0x4d22e3
cmp byte [ebx + 0x9c], 0
jne 0x4d217d
test eax, eax
je 0x4d22e3
sub eax, 1
jmp 0x4d217d
cmp byte [ebx + 0x10d], 0
je 0x4d3b8d
cmp byte [ebx + 0x9c], 0
jne 0x4d2335
cmp dword [ebp + 0x14], 0
jne 0x4d22e3
cmp byte [ebx + 0x125], 0
je 0x4d1e02
xor eax, eax
jmp 0x4d217d
mov dword [esp], 0x10
call fcn.006fec40
mov esi, eax
mov dword [eax], 0x771ffc
mov dword [ebx + 0x64], eax
mov dword [eax + 4], 1
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x4d2318
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
push edi
mov dword [ebx + 0x68], esi
jmp 0x4d1ca2
mov edx, dword [ebx + 0x114]
test edx, edx
je 0x4d22e3
cmp edx, eax
ja 0x4d22d0
mov eax, 0
je 0x4d22ba
mov dword [ebp - 0xd0], eax
jmp 0x4d234a
add dword [ebp - 0xd0], 1
mov edx, dword [ebx + 0x114]
mov eax, edx
mov edx, dword [ebp - 0xd0]
cmp edx, eax
jae 0x4d217d
mov eax, dword [ebx + 0x78]
mov eax, dword [eax + edx*4]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x110]
mov eax, dword [eax + edx*4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004b56f0
test eax, eax
je 0x4d233d
jmp 0x4d22d0
cmp byte [ebx + 0x9c], 0
jne 0x4d1c80
sub eax, 1
jmp 0x4d1c80
cmp dword [ebx + 0x108], 0
je 0x4d1f13
jmp 0x4d1ebd
mov dword [esp], 0x10
call fcn.006fec40
mov esi, eax
mov dword [eax], 0x7719f8
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 4], 1
mov eax, dword [ebp - 0xbc]
test eax, eax
je 0x4d23e5
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
push eax
mov dword [ebp - 0xbc], esi
cmp dword [ebx + 0x108], 0
je 0x4d1f13
mov esi, dword [ebp - 0xbc]
mov edi, dword [ebx + 0x104]
test esi, esi
je 0x4d1ec5
mov eax, dword [esi]
mov dword [esp], esi
call dword [eax + 4]
push eax
jmp 0x4d1ec5
lea eax, [ebx + 0xd0]
mov dword [esp + 4], 0xb
mov ecx, ebx
mov edx, eax
mov dword [ebp - 0xf4], eax
lea eax, [ebx + 0xe5]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.004cfbb0
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d226c
lea eax, [ebx + 0xd8]
mov dword [esp + 4], 0xc
mov ecx, ebx
mov edx, eax
mov dword [ebp - 0xf8], eax
lea eax, [ebx + 0xe6]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.004cfbb0
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d226c
lea eax, [ebp - 0xbd]
mov dword [esp + 8], 0x15
mov byte [ebp - 0xbd], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004a35d0
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d226c
cmp byte [ebx + 0x9c], 0
je 0x4d33fa
cmp dword [ebx + 0x7c], 0
jne 0x4d33fa
cmp byte [ebx + 0x10d], 0
je 0x4d33f0
lea eax, [ebx + 0x90]
lea ecx, [ebp - 0x50]
mov dword [esp], eax
call fcn.00474110
push eax
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004a1690
cmp dword [ebx + 0x7c], 0
je 0x4d38d0
cmp dword [ebx + 0x54], 3
je 0x4d38a9
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebx + 0x78]
cmp byte [ebx + 0x20], 1
mov eax, dword [eax + edx*4 - 4]
mov dword [ebp - 0xd0], eax
sbb eax, eax
mov ecx, dword [ebp - 0xd0]
and eax, 0xffffffdb
add eax, 0x5f
mov dword [esp], eax
call fcn.00636c70
push eax
lea eax, [ebp - 0x50]
mov ecx, dword [ebp - 0xd0]
mov dword [esp], eax
call fcn.004747a0
push eax
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4d257a
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0xe8]
mov dword [esp + 4], eax
lea eax, [ebp - 0xb0]
mov dword [esp], eax
call fcn.004a1e00
cmp byte [ebp - 0xbd], 0
jne 0x4d25b3
cmp byte [ebx + 0x9e], 0
mov eax, dword [ebx + 0x7c]
jne 0x4d34c4
test eax, eax
jne 0x4d348b
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xa4]
mov dword [esp], eax
call fcn.00474110
push ecx
cmp dword [ebx + 0x54], 3
je 0x4d26f7
lea eax, [ebx + 0x3c]
lea ecx, [ebp - 0x50]
mov dword [esp], eax
call fcn.00474110
cmp dword [ebp - 0xa0], 0
push edx
je 0x4d25fa
mov eax, dword [ebp - 0xa4]
cmp word [eax], 0x3a
je 0x4d3441
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x50]
mov dword [esp], eax
call fcn.004747a0
push eax
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0xa4]
mov dword [esp], eax
call fcn.00474280
push eax
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4d262d
mov dword [esp], eax
call fcn.006febd0
cmp byte [ebx + 0x9c], 0
je 0x4d27a7
mov eax, dword [ebx + 0xa0]
cmp eax, 0xffffffff
je 0x4d27a7
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x50], eax
call fcn.00473f00
mov eax, dword [ebx + 0x1b8]
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
cmp eax, ecx
je 0x4d391a
mov esi, dword [ebx + 0x1b4]
add eax, ecx
shr eax, 1
lea edx, [eax*4]
mov dword [ebp - 0xfc], esi
mov esi, dword [esi + eax*4]
mov dword [ebp - 0xf0], edx
mov edx, dword [ebp - 0xf4]
cmp edx, dword [esi]
je 0x4d271a
jae 0x4d2712
mov dword [ebp - 0xe8], eax
jmp 0x4d2671
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call fcn.004bf190
test al, al
jne 0x4d262d
jmp 0x4d25d2
lea ecx, [eax + 1]
jmp 0x4d2671
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xfc]
test eax, eax
je 0x4d273b
mov dword [esp], eax
call fcn.006febd0
mov edx, dword [ebx + 0x1b4]
mov eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0xa4]
mov eax, dword [edx + eax]
add eax, 4
mov dword [esp], eax
call fcn.00474280
push eax
lea ecx, [ebp - 0xa4]
mov dword [esp], 0x3a
call fcn.00636c70
push eax
lea eax, [ebx + 0x90]
lea ecx, [ebp - 0x50]
mov dword [esp], eax
call fcn.00474110
push eax
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004a1690
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0xa4]
mov dword [esp], eax
call fcn.004747a0
push eax
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4d27a7
mov dword [esp], eax
call fcn.006febd0
cmp byte [ebx + 0x9e], 0
jne 0x4d3514
movzx eax, byte [ebx + 0xc0]
lea edx, [ebx + 0xac]
mov dword [ebp - 0xd0], edx
test al, al
mov byte [ebp - 0xf0], al
je 0x4d29c1
lea eax, [ebp - 0xa4]
mov ecx, dword [ebp - 0xd0]
mov dword [esp], eax
call fcn.00474280
cmp byte [ebp - 0xbd], 0
push eax
lea eax, [ebx + 0x100]
mov dword [ebp - 0xf0], eax
jne 0x4d297f
cmp dword [ebx + 0x1ac], 0
jne 0x4d2a31
cmp dword [ebx + 0x194], 0
je 0x4d2826
cmp byte [ebx + 0x9c], 0
je 0x4d355a
mov dword [esp], 0x18
call fcn.006fec40
mov dword [eax + 4], 0
mov dword [eax], 0x7716e4
mov dword [eax + 8], 0xffffffff
mov dword [ebx + 0xfc], eax
mov dword [ebp - 0x88], eax
mov dword [esp], eax
call dword [0x7716e8]
push edi
cmp byte [ebx + 0xc0], 1
mov edx, dword [ebx + 0xfc]
mov esi, dword [ebp - 0xa4]
sbb eax, eax
lea ecx, [edx + 8]
mov dword [edx + 0x10], 0
and eax, 0xfffffffe
mov dword [edx + 0x14], 0
mov dword [esp], esi
add eax, 4
mov dword [esp + 4], eax
call fcn.004bd7b0
test al, al
push esi
push esi
je 0x4d33b3
cmp byte [ebx + 0x22], 0
jne 0x4d3306
cmp byte [ebp - 0xe9], 0
je 0x4d28be
cmp byte [ebx + 0x9c], 0
je 0x4d2e02
cmp byte [ebx + 0xc0], 0
je 0x4d2957
mov ecx, dword [ebx + 0xfc]
mov esi, dword [ecx]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, dword [ebx + 0xb8]
mov edx, dword [ebx + 0xbc]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call dword [esi + 0x10]
sub esp, 0x14
test eax, eax
mov dword [ebp - 0xd0], eax
je 0x4d2957
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x4d291d
mov ecx, dword [eax]
mov dword [esp], eax
call dword [ecx + 8]
push eax
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x4d292f
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x4d226c
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d226c
cmp byte [ebp - 0xe9], 0
jne 0x4d28b1
lea eax, [ebp - 0x88]
mov ecx, dword [ebp - 0xf0]
mov dword [esp], eax
call fcn.0063a130
mov eax, dword [ebp - 0x88]
push edx
test eax, eax
je 0x4d297f
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
push eax
mov eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0xbc]
mov dword [esp], eax
call fcn.0063a130
push eax
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x4d29a6
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x4d23eb
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d23eb
lea eax, [ebp - 0x88]
mov ecx, eax
mov dword [ebp - 0xe8], eax
call fcn.004bbe80
lea edx, [ebp - 0x60]
mov ecx, edx
call fcn.00473f00
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xe8]
mov dword [esp], eax
call fcn.004bbef0
test al, al
push edx
je 0x4d31fa
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x4d30a9
cmp eax, 2
jne 0x4d2ec9
mov dword [ebp - 0xd0], 0
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4d291d
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d291d
lea eax, [ebp - 0x98]
mov ecx, eax
mov dword [ebp - 0xe4], eax
call fcn.00473f00
cmp byte [ebp - 0xdc], 0
je 0x4d2ab9
lea ecx, [ebp - 0x50]
mov dword [esp], edi
call fcn.00474110
push eax
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x4d2a98
mov edx, dword [ebp - 0x50]
movzx ecx, word [edx + eax*2 - 2]
cmp cx, 0x5c
je 0x4d2e52
cmp cx, 0x2f
je 0x4d2e52
lea ecx, [ebp - 0x50]
call fcn.00474b30
add eax, 1
cmp eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
jae 0x4d2a98
mov dword [ebp - 0x4c], eax
mov word [edx + eax*2], 0
lea eax, [ebp - 0x50]
mov ecx, dword [ebp - 0xe4]
mov dword [esp], eax
call fcn.00474280
push eax
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4d2ab9
mov dword [esp], eax
call fcn.006febd0
lea eax, [ebx + 0x1a8]
mov ecx, dword [ebp - 0xe4]
mov dword [esp], eax
mov dword [ebp - 0xd0], eax
call fcn.004747a0
push eax
mov eax, dword [ebp - 0xe4]
mov dword [esp], eax
call fcn.004d0bb0
test al, al
jne 0x4d2b45
mov eax, dword [ebp - 0xe4]
mov dword [esp], str.Dangerous_link_path_was_ignored
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfca0
test eax, eax
mov dword [ebp - 0xd0], eax
push ecx
push ecx
je 0x4d2bbf
mov eax, dword [ebp - 0x98]
test eax, eax
jne 0x4d2a24
jmp 0x4d291d
lea eax, [ebp - 0x88]
mov ecx, eax
mov dword [ebp - 0xe8], eax
call fcn.00473f00
cmp byte [ebp - 0xdc], 1
jne 0x4d2bf8
cmp byte [ebp - 0xd8], 0
jne 0x4d2bf8
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe8]
mov dword [esp], eax
call fcn.00474280
push eax
cmp dword [ebp - 0x84], 0
mov edx, dword [ebp - 0x88]
je 0x4d2bad
cmp byte [ebp - 0xd8], 0
jne 0x4d2cbf
cmp byte [ebx + 0x1a], 0
jne 0x4d2c69
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x4d2bbf
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x4d2bd1
mov dword [esp], eax
call fcn.006febd0
cmp dword [ebx + 0x1ac], 0
je 0x4d2810
jmp 0x4d297f
mov eax, dword [ebp - 0xe8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x98]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x48]
mov dword [esp], eax
call fcn.004bf570
test al, al
jne 0x4d2b87
mov eax, dword [ebp - 0xe4]
mov dword [esp], str.Incorrect_path
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfca0
test eax, eax
mov dword [ebp - 0xd0], eax
push edx
push edx
je 0x4d2b87
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x4d2b0e
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d2b0e
movzx eax, byte [ebp - 0xe0]
mov dword [esp + 4], edx
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
xor eax, 1
movzx eax, al
mov dword [esp + 8], eax
lea eax, [ebp - 0xb8]
mov dword [esp], eax
call fcn.004bdc50
test al, al
jne 0x4d2d11
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x4d2bad
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d2bad
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004ba870
test al, al
jne 0x4d2bad
mov eax, dword [ebp - 0xe8]
mov dword [esp], str.Can_not_create_hard_link
mov ecx, ebx
mov dword [esp + 8], eax
lea eax, [ebp - 0xa4]
mov dword [esp + 4], eax
call fcn.004d0280
sub esp, 0xc
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d2c47
jmp 0x4d2bad
lea ecx, [ebp - 0x50]
call fcn.00639c00
mov eax, dword [ebp - 0xb4]
lea ecx, [ebp - 0x50]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp], eax
call fcn.004bdf80
test al, al
push ecx
push ecx
jne 0x4d2da5
mov dword [esp + 4], edi
mov dword [esp], str.Internal_error_for_symbolic_link_file
mov ecx, ebx
call fcn.004cfca0
test eax, eax
mov dword [ebp - 0xd0], eax
push edx
push edx
jne 0x4d2d82
lea ecx, [ebp - 0x50]
call fcn.00639c50
jmp 0x4d2ca4
lea ecx, [ebp - 0x50]
call fcn.00639c50
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x4d2c47
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d2c47
mov eax, dword [ebp - 0xb4]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp + 8], eax
movzx eax, byte [ebx + 0x9e]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa4]
mov dword [esp], eax
call fcn.004be450
test al, al
jne 0x4d2d58
lea eax, [ebp - 0xa4]
mov dword [esp], str.Can_not_create_symbolic_link
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfd30
jmp 0x4d2d4c
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0xa4]
mov dword [esp], eax
call fcn.00474110
push eax
lea eax, [ebp - 0x50]
lea ecx, [ebx + 0x1b4]
mov esi, dword [ebx + 0x1b8]
mov dword [esp], eax
call fcn.00607830
push edi
cmp esi, dword [ebx + 0x1b8]
je 0x4d2e63
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x4d28be
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d28be
sub eax, 1
mov dword [ebp - 0x4c], eax
mov word [edx + eax*2], 0
jmp 0x4d2a7c
mov edx, dword [ebx + 0x1b4]
mov ecx, dword [edx + eax*4]
lea eax, [ebp - 0xa4]
mov dword [esp], eax
add ecx, 4
call fcn.00474280
push ecx
jmp 0x4d2e3a
mov dword [ebx + 0x58], 3
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x4d2ec6
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebx + 0x58]
cmp eax, 3
je 0x4d3056
cmp eax, 4
je 0x4d2f68
test byte [ebp - 0x68], 0x10
mov eax, dword [ebp - 0xa4]
mov dword [esp], eax
je 0x4d2f45
call fcn.004ba820
test al, al
je 0x4d2f20
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4d2f02
mov dword [esp], eax
call fcn.006febd0
movzx eax, byte [ebp - 0xf0]
mov byte [ebp - 0xe9], al
lea eax, [ebx + 0xac]
mov dword [ebp - 0xd0], eax
jmp 0x4d27d5
lea eax, [ebp - 0xa4]
mov dword [esp], str.Can_not_delete_output_folder
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfd30
mov dword [ebp - 0xd0], eax
push ebx
push ebx
jmp 0x4d2a19
call fcn.004bab70
test al, al
jne 0x4d2ef3
lea eax, [ebp - 0xa4]
mov dword [esp], str.Can_not_delete_output_file
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfd30
jmp 0x4d2f38
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x50]
mov dword [esp], eax
call fcn.00474110
push eax
lea eax, [ebp - 0x50]
mov dword [esp], eax
call fcn.004e2ff0
test al, al
jne 0x4d2fcf
lea eax, [ebp - 0xa4]
mov dword [esp], str.Can_not_create_file_with_auto_name
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfca0
test eax, eax
mov dword [ebp - 0xd0], eax
push esi
push esi
jne 0x4d2fb7
mov dword [ebp - 0xd0], 0x80004005
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4d2a19
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d2a19
mov eax, dword [ebp - 0x50]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa4]
mov dword [esp], eax
call fcn.004ba840
test al, al
je 0x4d3021
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4d2ef3
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d2ef3
lea eax, [ebp - 0xa4]
mov dword [esp], str.Can_not_rename_existing_file
mov ecx, ebx
mov dword [esp + 8], eax
lea eax, [ebp - 0x50]
mov dword [esp + 4], eax
call fcn.004d0280
sub esp, 0xc
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d2fb7
jmp 0x4d2fad
lea eax, [ebp - 0xa4]
mov dword [esp], eax
call fcn.004e2ff0
test al, al
mov byte [ebp - 0xf0], al
jne 0x4d2ef3
lea eax, [ebp - 0xa4]
mov dword [esp], str.Can_not_create_file_with_auto_name
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfca0
test eax, eax
mov dword [ebp - 0xd0], eax
push edx
push edx
jne 0x4d2a19
mov dword [ebp - 0xd0], 0x80004005
jmp 0x4d2a19
lea ecx, [ebp - 0xa4]
call fcn.00474b30
lea edx, [ebp - 0xa4]
add eax, 1
lea ecx, [ebp - 0x50]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00473b80
lea edx, [ebp - 0x60]
push ecx
push ecx
lea eax, [ebp - 0x98]
mov dword [esp + 8], edx
lea edx, [ebp - 0x50]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00473d00
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4d30f9
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebx + 0x28]
mov edx, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xe4]
mov ecx, dword [edx + 0x14]
xor edx, edx
cmp byte [ebx + 0xf8], 0
cmove eax, edx
cmp byte [ebx + 0xe6], 0
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x50]
cmovne edx, dword [ebp - 0xf8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0xe4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov edx, dword [ebx + 0x6c]
mov eax, dword [ebp - 0xe8]
mov dword [esp + 0x10], edx
lea edx, [ebp - 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xd0]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x98]
mov dword [esp], eax
mov dword [esp + 4], edx
call ecx
sub esp, 0x20
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d31ae
cmp dword [ebp - 0x50], 5
ja case.default.0x4d3185
mov eax, dword [ebp - 0x50]
jmp dword [eax*4 + 0x749b2c]
mov dword [ebx + 0x58], 1
jmp case.0x4d3185.0
mov dword [ebx + 0x58], 2
mov dword [ebp - 0xd0], 0
mov eax, dword [ebp - 0x98]
test eax, eax
jne 0x4d2fc2
jmp 0x4d2a19
mov dword [ebp - 0xd0], 0x80004004
jmp 0x4d31ae
mov dword [ebp - 0xd0], 0x80004005
jmp 0x4d31ae
mov dword [ebp - 0xd0], 0
jmp 0x4d31ae
mov eax, dword [ebp - 0xa4]
mov dword [esp], eax
call fcn.004bf1c0
test eax, eax
mov dword [ebp - 0xd0], eax
js 0x4d2ef3
add eax, 1
lea edx, [eax + eax]
mov dword [ebp - 0xe4], edx
mov edx, dword [ebp - 0xa4]
cmp word [edx + eax*2], 0
je 0x4d2ef3
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x98]
mov dword [esp], eax
call fcn.00474110
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x98]
push ecx
jae 0x4d326f
mov dword [ebp - 0x94], edx
mov edx, dword [ebp - 0xe4]
mov word [eax + edx - 2], 0
lea ecx, [ebp - 0x50]
call fcn.004bbe80
lea ecx, [ebp - 0x28]
call fcn.00473f00
mov eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x50]
mov dword [esp], eax
call fcn.004bbef0
test al, al
push edx
jne 0x4d32c2
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4d32a4
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x4d32b6
mov dword [esp], eax
call fcn.006febd0
mov byte [ebp - 0xf0], 0
jmp 0x4d2ef3
mov eax, dword [ebp - 0x30]
test al, 1
je 0x4d3295
and eax, 0xfffffffe
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x98]
mov dword [esp], eax
call fcn.004ba7b0
jmp 0x4d3295
cmp byte [ebx + 0xc0], 0
jne 0x4d33a1
cmp byte [ebx + 0xf8], 0
je 0x4d294a
mov eax, dword [ebx + 0xf4]
mov edx, dword [ebx + 0xf0]
cmp eax, 0
ja 0x4d333d
cmp edx, 0x1000
jbe 0x4d294a
mov edi, dword [ebx + 0xfc]
mov dword [esp], edx
mov dword [esp + 4], eax
lea ecx, [edi + 8]
call fcn.004bdb60
mov esi, eax
push ecx
push ecx
mov byte [ebx + 0xf9], al
mov eax, dword [ebx + 0xfc]
lea ecx, [eax + 8]
call fcn.004bd2e0
mov eax, esi
test al, al
jne 0x4d28a8
lea eax, [ebp - 0xa4]
mov dword [esp], str.Can_not_set_length_for_output_file
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfd30
test eax, eax
mov dword [ebp - 0xd0], eax
push edx
push edx
jne 0x4d290a
jmp 0x4d28a8
cmp byte [ebp - 0xe9], 0
jne 0x4d28b1
jmp 0x4d28cb
lea eax, [ebp - 0xa4]
mov dword [esp], str.Can_not_open_output_file
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004cfd30
mov dword [ebp - 0xd0], eax
push ebx
push ebx
jmp 0x4d290a
cmp dword [ebx + 0x54], 4
je 0x4d24fd
movzx eax, byte [ebx + 0x9f]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xe8]
mov dword [esp + 8], eax
movzx eax, byte [ebx + 0x5c]
mov dword [esp + 4], eax
xor eax, eax
cmp dword [ebx + 0x54], 3
sete al
mov dword [esp], eax
call fcn.004a1850
cmp byte [ebx + 0x9c], 0
jne 0x4d24fd
jmp 0x4d257a
mov edx, dword [ebx + 0x40]
test edx, edx
je 0x4d25fa
mov eax, dword [ebx + 0x3c]
movzx edx, word [eax + edx*2 - 2]
cmp dx, 0x5c
je 0x4d3464
cmp dx, 0x2f
jne 0x4d25fa
mov dword [esp], eax
call fcn.004bf110
test al, al
jne 0x4d25fa
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
sub eax, 1
mov dword [ebp - 0x4c], eax
mov word [edx + eax*2], 0
jmp 0x4d25fa
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + eax*4 - 4]
test eax, eax
mov dword [ebp - 0xd0], eax
je 0x4d34c0
mov edx, dword [eax]
test edx, edx
je 0x4d34aa
mov dword [esp], edx
call fcn.006febd0
mov eax, dword [ebp - 0xd0]
mov dword [esp + 4], 0xc
mov dword [esp], eax
call fcn.006fec10
sub dword [ebx + 0x7c], 1
cmp dword [ebx + 0x7c], 0
je 0x4d25b3
lea ecx, [ebp - 0x50]
call fcn.00473f00
lea eax, [ebp - 0x50]
mov ecx, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xe8]
mov dword [esp], eax
call fcn.004cfa80
push eax
push eax
cmp byte [ebx + 0x9e], 0
jne 0x4d3930
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4d25b3
mov dword [esp], eax
call fcn.006febd0
jmp 0x4d25b3
lea eax, [ebx + 0xac]
lea edx, [ebp - 0xa4]
mov ecx, eax
mov dword [esp], edx
mov dword [ebp - 0xd0], eax
call fcn.00474280
cmp byte [ebp - 0xbd], 0
push ecx
jne 0x4d386d
cmp dword [ebx + 0x1ac], 0
jne 0x4d27d5
mov dword [ebp - 0xd0], 0
jmp 0x4d291d
lea edi, [ebp - 0x98]
mov eax, dword [esi]
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x90], 0
mov dword [esp + 8], 0x5b
mov dword [ebp - 0xe4], edi
mov dword [esp + 0xc], edi
mov edi, dword [ebp + 0xc]
mov dword [esp], esi
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d3880
movzx eax, word [ebp - 0x98]
cmp ax, 0x12
je 0x4d383f
ja 0x4d3816
test ax, ax
je 0x4d3806
cmp ax, 0x11
jne 0x4d3801
movzx eax, byte [ebp - 0x90]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xe4]
lea edi, [ebp - 0x88]
call fcn.004c0970
mov eax, dword [esi]
mov dword [ebp - 0xe8], edi
mov dword [esp + 0xc], edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x80], 0
mov dword [esp + 8], 0x5c
mov dword [esp], esi
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x10
test eax, eax
mov dword [ebp - 0xd0], eax
jne 0x4d37d1
movzx eax, word [ebp - 0x88]
cmp ax, 0x12
je 0x4d37c4
ja 0x4d37a9
test ax, ax
je 0x4d379f
cmp ax, 0x11
jne 0x4d379a
movzx eax, byte [ebp - 0x80]
xor edi, edi
mov esi, eax
mov ecx, dword [ebp - 0xe8]
call fcn.004c0970
mov eax, dword [ebx + 0x194]
mov dword [ebp - 0xe0], 0
mov edx, ebx
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xdc], eax
mov esi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
cmp esi, eax
je 0x4d3793
add esi, eax
shr esi, 1
mov eax, esi
shl eax, 4
add eax, dword [edx + 0x190]
mov ebx, dword [eax + 4]
cmp ebx, dword [ebp - 0xcc]
mov ecx, dword [eax]
ja 0x4d3708
jb 0x4d373f
cmp ecx, dword [ebp - 0xd0]
ja 0x4d3708
cmp ebx, dword [ebp - 0xcc]
jb 0x4d373f
ja 0x4d36e8
cmp ecx, dword [ebp - 0xd0]
jb 0x4d373f
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
cmp dword [ebp - 0xd4], eax
je 0x4d3710
cmp dword [ebp - 0xd4], eax
jb 0x4d3708
ja 0x4d373f
cmp dword [ebp - 0xd8], ecx
jae 0x4d373f
mov dword [ebp - 0xdc], esi
jmp 0x4d369c
cmp dword [ebp - 0xd8], ecx
jne 0x4d36f6
mov eax, dword [edx + 0x19c]
mov ebx, edx
mov esi, dword [eax + esi*4]
cmp dword [esi + 4], 0
jne 0x4d374d
lea eax, [ebp - 0xa4]
mov ecx, esi
mov dword [esp], eax
call fcn.00474280
push eax
jmp 0x4d2826
lea eax, [esi + 1]
mov dword [ebp - 0xe0], eax
jmp 0x4d369c
mov eax, dword [esi]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa4]
mov dword [esp], eax
call fcn.004ba870
test al, al
jne 0x4d297f
lea eax, [ebp - 0xa4]
mov dword [esp + 8], esi
mov dword [esp], str.Can_not_create_hard_link
mov ecx, ebx
mov dword [esp + 4], eax
call fcn.004d0280
sub esp, 0xc
mov dword [ebp - 0xd0], eax
jmp 0x4d291d
mov ebx, edx
jmp 0x4d2826
call fcn.00701768
or esi, 0xffffffff
mov edi, esi
jmp 0x4d366d
cmp ax, 0x13
je 0x4d37e1
cmp ax, 0x15
jne 0x4d379a
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov esi, eax
mov edi, edx
jmp 0x4d366d
movzx eax, word [ebp - 0x80]
xor edi, edi
mov esi, eax
jmp 0x4d366d
mov ecx, dword [ebp - 0xe8]
call fcn.004c0970
jmp 0x4d291d
mov eax, dword [ebp - 0x80]
xor edx, edx
mov edi, edx
mov esi, eax
jmp 0x4d366d
call fcn.00701768
mov ecx, dword [ebp - 0xe4]
call fcn.004c0970
jmp 0x4d2826
cmp ax, 0x13
je 0x4d3890
cmp ax, 0x15
jne 0x4d3801
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], edx
jmp 0x4d35e7
movzx eax, word [ebp - 0x90]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd8], eax
jmp 0x4d35e7
mov eax, dword [ebx + 0xac]
mov dword [esp], eax
call fcn.004ba820
jmp 0x4d353e
mov ecx, dword [ebp - 0xe4]
call fcn.004c0970
jmp 0x4d291d
mov eax, dword [ebp - 0x90]
xor edx, edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xd8], eax
jmp 0x4d35e7
mov eax, dword [ebp - 0xe8]
mov dword [esp], eax
call fcn.004b66f0
cmp eax, dword [ebx + 0x7c]
jne 0x4d252e
mov ecx, dword [ebp - 0xe8]
call fcn.00607de0
jmp 0x4d252e
mov ecx, dword [ebp - 0xe8]
call fcn.00607de0
cmp byte [ebx + 0x10d], 0
jne 0x4d38ee
cmp dword [ebx + 0x54], 4
jne 0x4d252e
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebx + 0x78]
mov eax, dword [eax + edx*4 - 4]
mov dword [ebp - 0xd0], eax
jmp 0x4d2559
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0xd0]
test eax, eax
jne 0x4d279f
jmp 0x4d27a7
lea eax, [ebp - 0x50]
lea ecx, [ebx + 0x144]
mov dword [esp], eax
call fcn.00607ce0
push eax
mov eax, dword [ebx + 0x154]
cmp eax, dword [ebx + 0x158]
je 0x4d3a19
mov edx, dword [ebx + 0x150]
mov ecx, dword [ebp + 0xc]
mov dword [edx + eax*4], ecx
add dword [ebx + 0x154], 1
cmp byte [ebx + 0xc4], 0
je 0x4d397f
cmp byte [ebx + 0xe6], 0
mov eax, dword [ebp - 0xf8]
jne 0x4d3993
mov edx, dword [ebx + 0x14]
xor eax, eax
cmp byte [edx + 0xa4], 0
je 0x4d3993
lea eax, [edx + 0x9c]
cmp byte [ebx + 0xc3], 0
je 0x4d3aba
cmp byte [ebx + 0xe5], 0
mov edx, 0
cmovne edx, dword [ebp - 0xf4]
mov dword [ebp - 0xf4], edx
cmp byte [ebx + 0xc2], 0
je 0x4d3aab
cmp byte [ebx + 0xe4], 0
mov edx, 0
cmovne edx, dword [ebp - 0xf0]
mov dword [ebp - 0xf0], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xf0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call fcn.004ba720
jmp 0x4d34fc
mov edx, eax
shr edx, 2
lea eax, [edx + eax + 1]
cmp eax, 0x1fffffff
mov dword [ebp - 0xe8], eax
ja 0x4d3aa6
shl eax, 2
mov dword [esp], eax
call fcn.006fec20
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx + 0x154]
mov edx, dword [ebx + 0x150]
test eax, eax
jne 0x4d3a7f
test edx, edx
je 0x4d3a62
mov dword [esp], edx
call fcn.006febd0
mov eax, dword [ebx + 0x154]
mov edx, dword [ebp - 0xd0]
mov dword [ebx + 0x150], edx
mov edx, dword [ebp - 0xe8]
mov dword [ebx + 0x158], edx
jmp 0x4d3954
shl eax, 2
mov dword [esp + 4], edx
mov dword [ebp - 0xfc], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xd0]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0xfc]
jmp 0x4d3a54
call fcn.006ff430
mov dword [ebp - 0xf0], 0
jmp 0x4d39df
mov dword [ebp - 0xf4], 0
jmp 0x4d39b9
mov dword [ebp - 0xd0], 0x80004005
lea ecx, [ebp - 0x50]
call fcn.004c0970
jmp 0x4d226c
mov eax, dword [ebp - 0x48]
mov byte [ebx + 0xe7], 1
mov dword [ebx + 0xe0], eax
jmp 0x4d2222
cmp byte [ebx + 0x9f], 0
je 0x4d22d0
jmp 0x4d2335