Function at 0x4412e0
Capabilities:
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x512621
mov eax, dword fs:[0]
push eax
sub esp, 0x190
mov eax, dword [0x5467a4]
xor eax, esp
mov dword [esp + 0x188], eax
push ebx
push esi
push edi
mov eax, dword [0x5467a4]
xor eax, esp
push eax
lea eax, [esp + 0x1a0]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
xor esi, esi
push 0xffffffffffffffff
push esi
mov edi, ecx
push eax
lea eax, [esp + 0x134]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14c], 7
mov dword [esp + 0x148], esi
mov word [esp + 0x138], si
call fcn.00401610
push 0x10
lea ecx, [esp + 0x12c]
mov dword [esp + 0x1ac], esi
call fcn.0043b600
add esp, 4
push 0xffffffffffffffff
lea eax, [ebx + 0x10]
push esi
push eax
lea eax, [esp + 0x150]
mov dword [esp + 0x168], 7
mov dword [esp + 0x164], esi
mov word [esp + 0x154], si
call fcn.00401610
lea eax, [edi + 0xb8]
mov byte [esp + 0x1a8], 1
mov ecx, dword [eax + 4]
cmp ecx, esi
je 0x4413ca
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
je 0x4413ca
push esi
call fcn.00406c10
mov eax, dword [eax]
mov dword [edi + 0xb4], eax
mov edx, dword [edi]
mov edx, dword [edx + 0x20]
lea eax, [esp + 0x27]
push eax
lea ecx, [esp + 0x148]
push ecx
lea eax, [esp + 0x130]
push eax
push ebx
mov ecx, edi
mov byte [esp + 0x37], 0
call edx
cmp byte [esp + 0x27], 0
jne 0x442236
lea esi, [esp + 0x144]
call fcn.0043b950
test al, al
jne 0x44145e
mov edx, esi
push edx
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0xc0]
call fcn.0043b740
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea eax, [esp + 0x134]
mov byte [esp + 0x1b4], 2
call fcn.00401610
mov byte [esp + 0x1a8], 1
cmp dword [esp + 0xd0], 8
jb 0x44145e
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.004e7d7e
add esp, 4
push 0xffffffffffffffff
xor esi, esi
push esi
lea edx, [esp + 0x130]
push edx
lea eax, [ebx + 0x2c]
call fcn.00401610
push 0xffffffffffffffff
push esi
lea eax, [esp + 0x14c]
push eax
lea eax, [ebx + 0x10]
call fcn.00401610
mov ecx, dword [edi + 0x114]
cmp ecx, esi
je 0x441498
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push ebx
call eax
cmp dword [ebx + 0x98], esi
je 0x441f31
mov esi, dword [esp + 0x20]
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
xor edi, edi
push edi
push edi
push ebx
mov ecx, esi
call eax
mov eax, dword [esi + 0xb4]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
lea edi, [esp + 0x4c]
call fcn.0043ebf0
test al, al
jne 0x44159e
mov edx, 0x51a1d4
lea eax, [esp + 0x9c]
call fcn.00406ac0
mov byte [esp + 0x1a8], 3
mov edi, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x9c]
push ecx
add edi, 0x30
call ebx
mov edx, dword [edi]
push eax
mov ecx, esi
call edx
mov byte [esp + 0x1a8], 1
cmp dword [esp + 0xb4], 8
mov byte [esp + 0x4b], al
jb 0x441530
mov eax, dword [esp + 0xa0]
push eax
call fcn.004e7d7e
add esp, 4
cmp byte [esp + 0x4b], 0
jne 0x441832
mov edx, 0x51a1d4
lea eax, [esp + 0x10c]
call fcn.00406ac0
mov edi, dword [esp + 0x20]
mov byte [esp + 0x1a8], 4
mov esi, dword [edi]
add esi, 0x34
call ebx
mov edx, dword [esi]
push eax
lea ecx, [esp + 0x110]
push ecx
push 0x10000002
mov ecx, edi
call edx
lea esi, [esp + 0x10c]
call fcn.00481d30
lea esi, [esp + 0x144]
call fcn.00481d30
lea esi, [esp + 0x128]
call fcn.00481d30
xor al, al
jmp 0x442289
mov ecx, dword [ebx + 0x70]
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, esi
call eax
mov byte [esp + 0x1a8], 5
mov ecx, dword [esp + 0x18]
xor edi, edi
cmp ecx, edi
je 0x44171d
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
mov eax, dword [esi + 0xbc]
cmp eax, edi
je 0x44171d
mov ecx, dword [esi + 0xc0]
sub ecx, eax
sar ecx, 2
je 0x44171d
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov byte [esp + 0x1a8], 6
mov dword [esp + 0x14], edi
jmp 0x441610
mov ecx, dword [esi + 0xbc]
test ecx, ecx
lea edi, [esi + 0xb8]
je 0x441733
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x14]
sub eax, ecx
sar eax, 2
cmp edx, eax
jae 0x441733
test ecx, ecx
je 0x441648
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 2
cmp edx, eax
jb 0x44164d
call fcn.004e89bf
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [edx + eax*4]
lea edi, [esp + 0x4c]
call fcn.0043ebf0
test al, al
je 0x44167b
mov ecx, edi
push ecx
lea esi, [esp + 0x3c]
call fcn.004450a0
add dword [esp + 0x14], 1
mov esi, dword [esp + 0x20]
jmp 0x441610
mov edx, 0x51a1d4
lea eax, [esp + 0xd4]
call fcn.00406ac0
mov edi, dword [esp + 0x20]
mov byte [esp + 0x1a8], 7
mov esi, dword [edi]
lea edx, [esp + 0xd4]
push edx
add esi, 0x30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [esi]
mov ecx, edi
call eax
lea esi, [esp + 0xd4]
mov bl, al
mov byte [esp + 0x1a8], 6
call fcn.00481d30
test bl, bl
jne 0x441818
mov edx, 0x51a1d4
lea eax, [esp + 0xf0]
call fcn.00406ac0
mov byte [esp + 0x1a8], 8
mov esi, dword [edi]
add esi, 0x34
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi]
push eax
lea ecx, [esp + 0xf4]
push ecx
push 0x10000002
mov ecx, edi
call edx
lea esi, [esp + 0xf0]
call fcn.00481d30
lea esi, [esp + 0x38]
call fcn.00444e50
lea eax, [esp + 0x18]
mov byte [esp + 0x1a8], 1
call fcn.0043de60
jmp 0x44157f
mov edx, dword [ebx + 0x68]
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x7c]
xor edi, edi
or edx, dword [ebx + 0x6c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
je 0x4417b0
nop
push edi
lea eax, [esp + 0x3c]
call fcn.00445040
mov ecx, dword [esp + 0x30]
cmp ecx, dword [eax + 4]
jb 0x4417ac
ja 0x44176d
mov edx, dword [esp + 0x2c]
cmp edx, dword [eax]
jb 0x4417ac
push edi
lea eax, [esp + 0x3c]
call fcn.00445040
mov ecx, dword [eax]
sub dword [esp + 0x2c], ecx
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x3c]
sbb dword [esp + 0x30], edx
add edi, 1
test ecx, ecx
je 0x44184f
mov eax, dword [esp + 0x40]
sub eax, ecx
sar eax, 3
cmp edi, eax
jae 0x44184f
mov eax, dword [ebx + 0x68]
or eax, dword [ebx + 0x6c]
jne 0x441750
mov dword [esp + 0x14], edi
lea ecx, [esp + 0x128]
push ecx
call fcn.0043a7a0
add esp, 4
test al, al
je 0x4418e0
lea edi, [esp + 0x128]
call fcn.0043a940
test al, al
jne 0x4418e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi]
mov edx, dword [edx + 0x30]
mov edi, eax
lea eax, [esp + 0x128]
push eax
push edi
mov ecx, esi
call edx
test al, al
je 0x4418b8
mov edx, dword [ebx + 0x84]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
push edx
mov edx, dword [ebx + 0x80]
push edx
push ebx
call eax
lea esi, [esp + 0x38]
call fcn.00444e50
lea eax, [esp + 0x18]
mov byte [esp + 0x1a8], 1
call fcn.0043de60
lea esi, [esp + 0x144]
call fcn.00481d30
lea esi, [esp + 0x128]
call fcn.00481d30
jmp 0x442287
cmp dword [esi + 0x144], 8
mov dword [esp + 0x14], edi
jb 0x441864
mov esi, dword [esi + 0x130]
jmp 0x44186a
add esi, 0x130
mov ecx, dword [esp + 0x14]
push ecx
push str..part
push esi
lea edx, [esp + 0x16c]
push str._s_s_d
push edx
call fcn.0042cd80
add esp, 0x14
mov ecx, dword [esp + 0x20]
push 2
mov byte [esp + 0x1ac], 9
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
lea edx, [esp + 0x164]
push edx
push 0x10000002
call eax
lea esi, [esp + 0x160]
jmp 0x44170f
mov edx, dword [esi]
mov edx, dword [edx + 0x34]
push edi
lea eax, [esp + 0x12c]
push eax
push 0x10000004
mov ecx, esi
call edx
test al, al
lea esi, [esp + 0x38]
je 0x441718
jmp 0x44181c
mov dword [esp + 0x10], 0xffffffff
mov byte [esp + 0x1a8], 0xa
cmp dword [ebx + 0x98], 1
jne 0x4419a1
mov eax, dword [ebx + 0x60]
or eax, 0x8000000
push eax
push 2
push 1
push 0x40000000
lea edi, [esp + 0x138]
lea esi, [esp + 0x20]
call fcn.0043eb10
test al, al
jne 0x441998
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [esp + 0x20]
mov edx, dword [esi]
mov edx, dword [edx + 0x30]
mov edi, eax
lea eax, [esp + 0x128]
push eax
push edi
mov ecx, esi
call edx
test al, al
je 0x44196b
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x80]
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
push ecx
push edx
push ebx
mov ecx, esi
call eax
lea esi, [esp + 0x10]
call fcn.0043eaf0
jmp 0x441818
mov edx, dword [esi]
mov edx, dword [edx + 0x34]
push edi
lea eax, [esp + 0x12c]
push eax
push 0x10000001
mov ecx, esi
call edx
test al, al
lea esi, [esp + 0x10]
je 0x441f08
call fcn.0043eaf0
jmp 0x441818
lea eax, [esp + 0x10]
call fcn.0043eca0
mov esi, dword [ebx + 0x68]
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x80]
xor edx, edx
cmp eax, edx
mov dword [esp + 0x94], esi
mov esi, dword [ebx + 0x6c]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x98], esi
jb 0x441e4a
ja 0x4419f0
test ecx, ecx
jbe 0x441e4a
lea ecx, [ecx]
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x441e9c
mov eax, dword [esp + 0x40]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x14], eax
jae 0x441e9c
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x24]
add eax, 0xb8
call fcn.00406c10
mov edi, dword [eax]
xor eax, eax
push 1
push eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
push eax
lea esi, [esp + 0x80]
mov eax, edi
mov dword [esp + 0x6c], edi
call fcn.0043ec40
test al, al
je 0x441f04
mov ecx, dword [esp + 0x74]
cmp ecx, dword [esp + 0x2c]
jne 0x441a63
mov edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x30]
je 0x441aa1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push 0
push eax
push ecx
lea esi, [esp + 0x80]
mov eax, edi
call fcn.0043ec40
test al, al
je 0x441f04
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x2c]
jne 0x441f04
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x30]
jne 0x441f04
mov ecx, dword [esp + 0x14]
push ecx
lea eax, [esp + 0x3c]
xor esi, esi
xor edi, edi
call fcn.00445040
mov edx, dword [esp + 0x4c]
add edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
adc ecx, dword [esp + 0x30]
cmp ecx, dword [eax + 4]
jb 0x441b1c
ja 0x441ace
cmp edx, dword [eax]
jbe 0x441b1c
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x3c]
call fcn.00445040
mov esi, dword [esp + 0x64]
sub esi, dword [eax]
mov edi, dword [esp + 0x68]
sbb edi, dword [eax + 4]
mov eax, dword [esp + 0x14]
add esi, dword [esp + 0x2c]
push eax
adc edi, dword [esp + 0x34]
lea eax, [esp + 0x3c]
call fcn.00445040
mov ecx, dword [eax]
sub ecx, dword [esp + 0x2c]
mov edx, dword [eax + 4]
sbb edx, dword [esp + 0x30]
mov eax, ecx
mov ecx, edx
xor edx, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
jmp 0x441b24
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x54], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x64], eax
adc dword [esp + 0x58], ecx
sub dword [esp + 0x4c], eax
sbb dword [esp + 0x50], ecx
mov ecx, dword [ebx + 0x98]
add dword [esp + 0x14], 1
cmp ecx, 1
jne 0x441bc9
mov edx, dword [esp + 0x18]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x24]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x24]
test ecx, ecx
mov dword [esp + 0x74], esp
je 0x441b76
add ecx, 4
mov edx, 1
lock xadd dword [ecx], edx
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
push edi
push esi
push ecx
mov ecx, dword [esp + 0x7c]
push edx
push ecx
push eax
mov eax, dword [esp + 0x80]
lea edx, [esp + 0x30]
push edx
mov edx, dword [esp + 0x44]
push eax
push ebx
lea ecx, [esp + 0x154]
push ecx
push edx
call fcn.00444080
test al, al
jne 0x441e28
lea esi, [esp + 0x10]
call fcn.0043ebd0
call fcn.0043eaf0
jmp 0x441714
cmp ecx, 2
jne 0x441e28
mov edi, dword [ebx + 0x68]
lea esi, [ebx + 0x88]
mov dword [esp + 0x70], 0
call fcn.00401110
cmp dword [ebx + 0x70], 0
jne 0x441c2b
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
mov eax, dword [ebx + 0x90]
push ecx
mov ecx, dword [edx + 0xb4]
lea esi, [esp + 0x74]
call fcn.0043eb60
test al, al
je 0x441bb6
mov eax, dword [ebx + 0x8c]
mov ecx, dword [esp + 0x70]
cmp ecx, eax
ja 0x441c20
mov eax, ecx
mov dword [ebx + 0x94], eax
jmp 0x441e28
mov ecx, dword [ebx + 0x90]
mov eax, dword [ebx + 0x68]
mov edi, dword [esp + 0x64]
add eax, ecx
mov dword [esp + 0x60], eax
xor eax, eax
lea esi, [esp + 0x80]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x80], vtable.GameMgr::GMBuffer_unsigned_char_.0
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
call fcn.00401110
mov ecx, dword [esp + 0x20]
mov eax, edi
mov byte [esp + 0x1a8], 0xc
mov ecx, dword [ecx + 0xb4]
push eax
mov eax, dword [esp + 0x8c]
lea esi, [esp + 0x74]
call fcn.0043eb60
test al, al
je 0x441f12
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x70]
cmp edi, eax
mov dword [esp + 0x8c], eax
ja 0x441cba
mov dword [esp + 0x8c], edi
mov eax, dword [ebx + 0x8c]
mov ecx, dword [esp + 0x94]
cmp ecx, eax
ja 0x441ccd
mov eax, ecx
xor esi, esi
cmp edi, esi
mov dword [ebx + 0x94], eax
mov dword [esp + 0x90], esi
jbe 0x441d93
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 0
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 0x90]
push edi
add eax, esi
push eax
call edx
test al, al
je 0x441f12
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x20]
add esi, eax
push 0
sub edi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
push esi
push ebx
call edx
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
jbe 0x441d8b
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
lea edx, [esp + 0x6c]
push edx
call eax
test eax, eax
je 0x441d80
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jbe 0x441d80
mov edx, dword [esp + 0x60]
sub edx, dword [esp + 0x28]
cmp edx, ecx
jb 0x441f12
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call fcn.004efdb0
mov ecx, dword [esp + 0x78]
add esp, 0xc
add dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
test edi, edi
ja 0x441ce4
cmp dword [ebx + 0x70], 0
je 0x441e14
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
test eax, eax
jbe 0x441dfa
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], 0
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x28]
push eax
call edx
test eax, eax
je 0x441dfa
mov ecx, dword [esp + 0x28]
test ecx, ecx
jbe 0x441dfa
mov edx, edi
sub edx, esi
cmp edx, ecx
jb 0x441f12
push ecx
push eax
push esi
call fcn.004efdb0
add esp, 0xc
add esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
ja 0x441da1
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
lea ecx, [esp + 0x80]
mov byte [esp + 0x1a8], 0xa
call fcn.00401070
mov eax, dword [esp + 0x58]
cmp eax, dword [ebx + 0x84]
ja 0x441e4a
jb 0x4419f0
mov ecx, dword [esp + 0x54]
cmp ecx, dword [ebx + 0x80]
jb 0x4419f0
mov eax, dword [ebx + 0x5c]
mov ecx, dword [ebx + 0x58]
mov edx, dword [ebx + 0x54]
push eax
mov eax, dword [ebx + 0x50]
push ecx
mov ecx, dword [ebx + 0x4c]
push edx
mov edx, dword [ebx + 0x48]
push eax
push ecx
push edx
lea eax, [esp + 0x28]
call fcn.0043ecc0
lea esi, [esp + 0x10]
call fcn.0043ebd0
call fcn.0043eaf0
lea esi, [esp + 0x38]
call fcn.00444e50
lea eax, [esp + 0x18]
mov byte [esp + 0x1a8], 1
call fcn.0043de60
mov edi, dword [esp + 0x20]
jmp 0x4421fe
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x144], 8
jb 0x441eb1
mov eax, dword [eax + 0x130]
jmp 0x441eb6
add eax, 0x130
mov edx, dword [esp + 0x14]
push edx
push str..part
push eax
lea eax, [esp + 0x188]
push str._s_s_d
push eax
call fcn.0042cd80
add esp, 0x14
mov ecx, dword [esp + 0x20]
push 2
mov byte [esp + 0x1ac], 0xb
mov edx, dword [ecx]
mov edx, dword [edx + 0x34]
lea eax, [esp + 0x180]
push eax
push 0x10000002
call edx
lea esi, [esp + 0x17c]
call fcn.00481d30
lea esi, [esp + 0x10]
call fcn.0043eaf0
jmp 0x441714
lea esi, [esp + 0x10]
call fcn.0043ebd0
lea ecx, [esp + 0x80]
call fcn.00401070
call fcn.0043eaf0
jmp 0x441714
lea eax, [esp + 0x128]
push eax
call fcn.0043a7a0
add esp, 4
test al, al
je 0x441fa1
mov edi, 8
cmp dword [esp + 0x15c], edi
jb 0x441f63
mov ecx, dword [esp + 0x148]
push ecx
call fcn.004e7d7e
add esp, 4
cmp dword [esp + 0x140], edi
mov dword [esp + 0x15c], 7
mov dword [esp + 0x158], esi
mov word [esp + 0x148], si
jb 0x441597
mov edx, dword [esp + 0x12c]
push edx
call fcn.004e7d7e
add esp, 4
xor al, al
jmp 0x442289
lea eax, [esp + 0x128]
push eax
call fcn.0043a6d0
add esp, 4
test al, al
jne 0x442039
mov edx, dword [edi]
mov edx, dword [edx + 0x2c]
lea eax, [esp + 0x128]
push eax
mov ecx, edi
call edx
test al, al
jne 0x442039
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi]
mov edx, dword [edx + 0x30]
lea ecx, [esp + 0x128]
push ecx
push eax
mov ecx, edi
call edx
test al, al
je 0x44157f
mov eax, dword [edi]
mov edx, dword [eax + 0x24]
push esi
push esi
push ebx
mov ecx, edi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x28]
push ebx
mov ecx, edi
call edx
mov eax, dword [ebx + 0x80]
add dword [edi + 0x120], eax
mov ecx, dword [ebx + 0x84]
adc dword [edi + 0x124], ecx
mov edi, dword [edi + 0x114]
cmp edi, esi
je 0x441832
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
push ebx
mov ecx, edi
call eax
jmp 0x441832
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
push 0
push 0
push ebx
mov ecx, edi
call eax
mov eax, ebx
xor esi, esi
call fcn.004354d0
test eax, eax
jbe 0x44212b
mov cl, byte [edi + 0x110]
test cl, cl
jne 0x44212b
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x442079
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x44207e
call fcn.004e89bf
mov edx, dword [ebx + 4]
mov ecx, dword [edx + esi*8]
lea eax, [edx + esi*8]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
je 0x4420a2
add eax, 4
mov edx, 1
lock xadd dword [eax], edx
mov byte [esp + 0x1a8], 0xd
cmp dword [ecx + 0x70], 3
jne 0x4420ee
cmp dword [ecx + 0x80], 0
jne 0x4420c2
cmp dword [ecx + 0x84], 0
je 0x442108
mov eax, dword [edi]
mov eax, dword [eax + 0x1c]
lea edx, [esp + 0x128]
push edx
push ecx
mov ecx, edi
call eax
test al, al
jne 0x442108
lea eax, [esp + 0x54]
mov byte [esp + 0x1a8], 1
call fcn.0043de60
jmp 0x44157f
mov edx, dword [edi]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x128]
push eax
push ecx
mov ecx, edi
call edx
test al, al
je 0x442190
lea eax, [esp + 0x54]
mov byte [esp + 0x1a8], 1
call fcn.0043de60
mov eax, ebx
add esi, 1
call fcn.004354d0
cmp esi, eax
jb 0x442058
mov cl, byte [edi + 0x110]
test cl, cl
je 0x4421ae
cmp dword [esp + 0x15c], 8
jb 0x44214f
mov edx, dword [esp + 0x148]
push edx
call fcn.004e7d7e
add esp, 4
xor eax, eax
cmp dword [esp + 0x140], 8
mov dword [esp + 0x15c], 7
mov dword [esp + 0x158], eax
mov word [esp + 0x148], ax
jb 0x441597
mov eax, dword [esp + 0x12c]
push eax
call fcn.004e7d7e
add esp, 4
xor al, al
jmp 0x442289
mov al, byte [edi + 0x110]
test al, al
lea eax, [esp + 0x54]
mov byte [esp + 0x1a8], 1
call fcn.0043de60
jmp 0x44157f
cmp dword [esp + 0x140], 8
mov ecx, dword [ebx + 0x60]
mov eax, dword [esp + 0x12c]
jae 0x4421c9
lea eax, [esp + 0x12c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
jne 0x4421dd
call esi
lea ecx, [ebx + 0x58]
push ecx
lea edx, [ebx + 0x50]
push edx
lea eax, [ebx + 0x48]
push eax
lea eax, [esp + 0x134]
call fcn.00449760
add esp, 0xc
test al, al
jne 0x4421fe
call esi
mov edx, dword [edi]
mov eax, dword [edx + 0x28]
push ebx
mov ecx, edi
call eax
mov ecx, dword [ebx + 0x80]
add dword [edi + 0x120], ecx
mov edx, dword [ebx + 0x84]
adc dword [edi + 0x124], edx
mov edi, dword [edi + 0x114]
xor esi, esi
cmp edi, esi
je 0x442236
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
push ebx
mov ecx, edi
call edx
mov edi, 8
cmp dword [esp + 0x15c], edi
jb 0x442254
mov eax, dword [esp + 0x148]
push eax
call fcn.004e7d7e
add esp, 4
cmp dword [esp + 0x140], edi
mov word [esp + 0x148], si
mov dword [esp + 0x158], esi
mov dword [esp + 0x15c], 7
jb 0x442287
mov ecx, dword [esp + 0x12c]
push ecx
call fcn.004e7d7e
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x1a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x188]
xor ecx, esp
call fcn.004e7d6f
mov esp, ebp
pop ebp
ret 8