Function at 0x425a20
Capabilities:
Get disk information
Get disk size
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x44b836
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdc
push ebx
push ebp
push esi
xor eax, eax
push edi
mov edi, ecx
mov dword [esp + 0x50], eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0x54], eax
push ecx
mov dword [esp + 0x18], edi
mov byte [esp + 0x5c], al
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
movzx edx, word [esp + 0xce]
movzx ecx, word [esp + 0xcc]
add eax, edx
add eax, ecx
push eax
call fcn.0043e210
add esp, 4
xor ebx, ebx
xor esi, esi
xor al, al
lea ebx, [ebx]
cmp al, 0x61
jl 0x425a98
cmp al, 0x7a
jle 0x425a9f
call fcn.0043e21d
jmp 0x425a90
mov byte [esp + esi + 0x50], al
inc esi
cmp esi, 8
jl 0x425a88
push 9
mov ebp, 0xf
push str.TargetDir
lea ecx, [esp + 0x64]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], 0
call fcn.00401ab0
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0xc0]
lea esi, [edi + 0x2c]
push eax
mov ecx, esi
mov dword [esp + 0xfc], ebx
call fcn.00404100
mov ecx, dword [esi + 4]
mov eax, dword [eax]
add esi, 0x18
cmp eax, ecx
jne 0x425b45
mov edi, dword [esi + 0x18]
cmp edi, 0x10
lea ecx, [esi + 4]
jb 0x425b04
mov edx, dword [ecx]
jmp 0x425b06
mov edx, ecx
mov eax, dword [esi + 0x14]
add eax, edx
cmp edi, 0x10
jb 0x425b14
mov ebx, dword [ecx]
jmp 0x425b16
mov ebx, ecx
cmp edi, 0x10
jb 0x425b1d
mov ecx, dword [ecx]
test ebx, ebx
jne 0x425b25
xor edx, edx
jmp 0x425b29
mov edx, ebx
sub edx, ecx
test eax, eax
jne 0x425b38
push eax
push edx
mov ecx, esi
call fcn.004015d0
jmp 0x425b53
sub eax, ebx
push eax
push edx
mov ecx, esi
call fcn.004015d0
jmp 0x425b53
push 0xffffffffffffffff
add eax, 0x28
push ebx
push eax
mov ecx, esi
call fcn.004019c0
push 0xffffffffffffffff
xor edi, edi
push edi
push esi
lea ecx, [esp + 0x84]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x98], edi
mov byte [esp + 0x88], 0
call fcn.004019c0
mov eax, dword [esp + 0x74]
mov esi, 0x10
cmp eax, esi
mov byte [esp + 0xf4], 2
jb 0x425b9d
mov ecx, dword [esp + 0x60]
push ecx
call fcn.0043c389
add esp, 4
cmp dword [esp + 0x90], esi
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], edi
mov byte [esp + 0x60], 0
jae 0x425bbb
lea eax, [esp + 0x7c]
mov edx, dword [esp + 0x8c]
cmp byte [edx + eax - 1], 0x5c
je 0x425bdc
push 1
push 0x44f4ec
lea ecx, [esp + 0x80]
call fcn.0040bab0
cmp dword [esp + 0x90], esi
mov eax, dword [esp + 0x7c]
jae 0x425bed
lea eax, [esp + 0x7c]
push 0x3a
push eax
call fcn.0043dae5
add esp, 8
test eax, eax
jne 0x425c41
mov eax, dword [esp + 0x14]
push 0xffffffffffffffff
push edi
add eax, 0x1c8
push eax
lea ecx, [esp + 0x84]
call fcn.004019c0
push 9
push str.Download_
lea ecx, [esp + 0x80]
call fcn.0040bab0
lea eax, [esp + 0x50]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x425c30
sub eax, edx
push eax
lea ecx, [esp + 0x54]
push ecx
jmp 0x425c57
lea eax, [esp + 0x50]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x425c48
sub eax, edx
push eax
lea edx, [esp + 0x54]
push edx
lea ecx, [esp + 0x80]
call fcn.0040bab0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x9c]
xor esi, esi
xor ebx, ebx
xor ebp, ebp
cmp ecx, esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebp
jle 0x425d58
mov edi, eax
add edi, 0x94
lea esp, [esp]
push esi
mov ecx, edi
call fcn.00417300
cmp dword [eax + 0x18], 0x10
jb 0x425cb3
mov eax, dword [eax + 4]
jmp 0x425cb6
add eax, 4
push str.File
push eax
call fcn.0043cd34
add esp, 8
test eax, eax
jne 0x425d3d
push 1
push esi
mov ecx, edi
call fcn.004171b0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
call fcn.004019c0
cmp dword [esp + 0x30], 0x10
mov eax, dword [esp + 0x1c]
jae 0x425d04
lea eax, [esp + 0x1c]
push eax
call fcn.0043df72
cdq
add esp, 4
add ebx, eax
mov eax, dword [esp + 0x30]
adc ebp, edx
cmp eax, 0x10
jb 0x425d28
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0043c389
add esp, 4
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x9c]
inc esi
cmp esi, eax
jl 0x425ca0
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
cmp dword [esp + 0x90], 0x10
mov esi, dword [esp + 0x7c]
mov byte [esp + 0xf4], 3
jae 0x425d90
lea esi, [esp + 0x7c]
mov al, byte [esi]
cmp al, 0x3a
je 0x425dc5
jmp 0x425da0
mov byte [esp + 0xbc], al
mov eax, dword [esp + 0xbc]
push eax
push 1
lea ecx, [esp + 0xa8]
call fcn.00415de0
mov al, byte [esi + 1]
inc esi
cmp al, 0x3a
jne 0x425da0
push 2
push 0x4500fc
lea ecx, [esp + 0xa8]
call fcn.0040bab0
cmp dword [esp + 0xb8], 0x10
mov eax, dword [esp + 0xa4]
jae 0x425df0
lea eax, [esp + 0xa4]
push 0
push 0
lea ecx, [esp + 0x9c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
jne 0x42602c
push 0x2c
push str.Warning:_cant_get_amount_of_free_bytes_for
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
call fcn.00401ab0
push 0xffffffffffffffff
push 0
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 4
call fcn.0040b9c0
push 0xe
push str.__error_code:
lea ecx, [esp + 0x20]
call fcn.0040bab0
push 0xa
lea eax, [esp + 0x60]
push eax
call ebp
push eax
call fcn.0043d549
lea eax, [esp + 0x68]
add esp, 0xc
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x425e80
sub eax, ecx
push eax
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x20]
call fcn.0040bab0
push 1
push 0x44f474
lea ecx, [esp + 0x20]
call fcn.0040bab0
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
add ecx, 0x2dc
call fcn.0040bcc0
cmp dword [esp + 0x30], 0x10
mov byte [esp + 0x13], 1
mov byte [esp + 0xf4], 3
jb 0x425edd
mov eax, dword [esp + 0x1c]
push eax
call fcn.0043c389
add esp, 4
mov ebx, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
lea eax, [esp + 0x9f]
push eax
push 1
call ebx
mov edi, eax
test edi, edi
jne 0x426086
push 0xa
lea ecx, [esp + 0x60]
push ecx
call ebp
push eax
call fcn.0043d549
mov edi, dword [esp + 0x20]
add esp, 0xc
push 0xffffffffffffffff
xor ebx, ebx
push ebx
lea edx, [esp + 0x80]
lea esi, [edi + 0x1c8]
push edx
mov ecx, esi
call fcn.004019c0
push 0x37
mov ebp, 0xf
push str.Warning:_cant_get_list_of_logical_drives__error_code:
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
call fcn.00401ab0
lea eax, [esp + 0x5c]
mov byte [esp + 0xf4], 5
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x425f60
sub eax, ecx
push eax
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x3c]
call fcn.0040bab0
push 1
push 0x44f474
lea ecx, [esp + 0x3c]
call fcn.0040bab0
push 0x1b
push str._Working_directory_now_is:
lea ecx, [esp + 0x3c]
call fcn.0040bab0
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [esp + 0x40]
call fcn.0040b9c0
lea ecx, [esp + 0x34]
push ecx
lea ecx, [edi + 0x2dc]
call fcn.0040bcc0
mov eax, dword [esp + 0x4c]
mov esi, 0x10
cmp eax, esi
jb 0x425fcf
mov edx, dword [esp + 0x38]
push edx
call fcn.0043c389
add esp, 4
cmp dword [esp + 0xb8], esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebx
mov byte [esp + 0x38], 0
jb 0x425ff5
mov eax, dword [esp + 0xa4]
push eax
call fcn.0043c389
add esp, 4
cmp dword [esp + 0x90], esi
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], 0
jb 0x4261c1
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.0043c389
add esp, 4
mov al, 1
jmp 0x4267a7
mov ecx, dword [esp + 0x98]
cmp ecx, dword [esp + 0x38]
jg 0x426052
jl 0x426048
mov edx, dword [esp + 0x94]
cmp edx, dword [esp + 0x34]
jae 0x426052
mov byte [esp + 0x13], 1
jmp 0x425edd
mov ebp, dword [esp + 0x14]
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x80]
lea esi, [ebp + 0x1c8]
push ecx
mov ecx, esi
mov byte [esp + 0x1f], 0
call fcn.004019c0
cmp dword [esi + 0x18], 0x10
jb 0x4265a2
mov ecx, dword [esi + 4]
jmp 0x4265a5
add edi, 0xa
push edi
call fcn.0043bc93
add esp, 4
mov esi, eax
push esi
push edi
call ebx
test eax, eax
jne 0x4261c8
push 0xa
lea edx, [esp + 0x60]
push edx
call ebp
push eax
call fcn.0043d549
mov edi, dword [esp + 0x20]
add esp, 0xc
push 0xffffffffffffffff
xor ebx, ebx
push ebx
lea eax, [esp + 0x80]
lea esi, [edi + 0x1c8]
push eax
mov ecx, esi
call fcn.004019c0
push 0x37
mov ebp, 0xf
push str.Warning:_cant_get_list_of_logical_drives__error_code:
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
call fcn.00401ab0
lea eax, [esp + 0x5c]
mov byte [esp + 0xf4], 6
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x426100
sub eax, ecx
push eax
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x3c]
call fcn.0040bab0
push 1
push 0x44f474
lea ecx, [esp + 0x3c]
call fcn.0040bab0
push 0x1b
push str._Working_directory_now_is:
lea ecx, [esp + 0x3c]
call fcn.0040bab0
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [esp + 0x40]
call fcn.0040b9c0
lea edx, [esp + 0x34]
push edx
lea ecx, [edi + 0x2dc]
call fcn.0040bcc0
mov eax, dword [esp + 0x4c]
mov esi, 0x10
cmp eax, esi
jb 0x42616f
mov eax, dword [esp + 0x38]
push eax
call fcn.0043c389
add esp, 4
cmp dword [esp + 0xb8], esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebx
mov byte [esp + 0x38], 0
jb 0x426195
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.0043c389
add esp, 4
cmp dword [esp + 0x90], esi
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], 0
jb 0x4261c1
mov edx, dword [esp + 0x7c]
push edx
call fcn.0043c389
add esp, 4
mov al, 1
jmp 0x4267a7
mov dword [esp + 0xe8], 0xf
mov dword [esp + 0xe4], 0
mov byte [esp + 0xd4], 0
cmp byte [esi], 0
mov byte [esp + 0xf4], 7
je 0x426748
mov edi, dword [esp + 0x14]
xor ebx, ebx
lea ecx, [ecx]
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x426316
push ebx
push ebx
lea eax, [esp + 0x9c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
jne 0x4262fa
push 0x2c
push str.Warning:_cant_get_amount_of_free_bytes_for
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], al
call fcn.00401ab0
mov eax, esi
mov byte [esp + 0xf4], 8
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x426256
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.0040bab0
push 0xe
push str.__error_code:
lea ecx, [esp + 0x20]
call fcn.0040bab0
push 0xa
lea ecx, [esp + 0x60]
push ecx
call ebp
push eax
call fcn.0043d549
lea eax, [esp + 0x68]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x426293
sub eax, ecx
push eax
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0x20]
call fcn.0040bab0
push 1
push 0x44f474
lea ecx, [esp + 0x20]
call fcn.0040bab0
lea eax, [esp + 0x18]
push eax
lea ecx, [edi + 0x2dc]
call fcn.0040bcc0
cmp dword [esp + 0x30], 0x10
mov byte [esp + 0xf4], 7
jb 0x4262e7
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0043c389
add esp, 4
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
jmp 0x426316
mov edx, dword [esp + 0x38]
cmp edx, dword [esp + 0x98]
jl 0x42633b
jg 0x426316
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x94]
jb 0x42633b
mov eax, esi
lea edx, [eax + 1]
jmp 0x426320
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x426320
sub eax, edx
lea esi, [esi + eax + 1]
cmp byte [esi], 0
jne 0x426200
jmp 0x426748
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x426340
sub eax, edx
push eax
add edi, 0x1c8
push esi
mov ecx, edi
call fcn.00401ab0
push 9
push str.Download_
mov ecx, edi
call fcn.0040bab0
lea eax, [esp + 0x50]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x426370
sub eax, edx
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, edi
call fcn.0040bab0
cmp dword [edi + 0x18], 0x10
jb 0x426391
mov ecx, dword [edi + 4]
jmp 0x426394
lea ecx, [edi + 4]
mov eax, ecx
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4263b0
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00401ab0
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0xf8], 9
call fcn.00425770
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x30]
neg ebx
sbb bl, bl
inc bl
cmp eax, 0x10
mov byte [esp + 0xf4], 7
jb 0x4263ff
mov eax, dword [esp + 0x1c]
push eax
call fcn.0043c389
add esp, 4
test bl, bl
je 0x426501
call ebp
cmp eax, 0xb7
je 0x4264ea
push 0x22
push str.Warning:_while_creating_directory
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
call fcn.00401ab0
push 0xffffffffffffffff
push 0
push edi
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 0xa
call fcn.0040b9c0
push 0x1a
push str._following_error_occured:
lea ecx, [esp + 0x20]
call fcn.0040bab0
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
push 0xa
lea edx, [esp + 0x38]
mov dword [esp + 0x40], ecx
push edx
mov dword [esp + 0x48], ecx
call ebp
push eax
call fcn.0043d549
lea eax, [esp + 0x40]
add esp, 0xc
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x426490
sub eax, ecx
push eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x20]
call fcn.0040bab0
push 1
push 0x44f474
lea ecx, [esp + 0x20]
call fcn.0040bab0
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
add ecx, 0x2dc
call fcn.0040bcc0
cmp dword [esp + 0x30], 0x10
mov byte [esp + 0xf4], 7
jb 0x426531
mov edx, dword [esp + 0x1c]
push edx
call fcn.0043c389
add esp, 4
jmp 0x426531
mov esi, dword [esp + 0x14]
mov ebx, dword [esi + 0x260]
mov eax, dword [ebx + 4]
add esi, 0x25c
push edi
push eax
jmp 0x426516
mov esi, dword [esp + 0x14]
mov ebx, dword [esi + 0x260]
mov ecx, dword [ebx + 4]
add esi, 0x25c
push edi
push ecx
mov ecx, esi
push ebx
call fcn.00416bd0
mov ecx, esi
push 1
mov ebp, eax
call fcn.00416130
mov dword [ebx + 4], ebp
mov eax, dword [ebp + 4]
mov dword [eax], ebp
push 0x1c
push 0x450018
lea ecx, [esp + 0x64]
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
mov byte [esp + 0x68], 0
call fcn.00401ab0
push 0xffffffffffffffff
push 0
push edi
lea ecx, [esp + 0x68]
mov byte [esp + 0x100], 0xb
call fcn.0040b9c0
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x5c]
push edx
add ecx, 0x2dc
call fcn.0040bcc0
cmp dword [esp + 0x74], 0x10
mov byte [esp + 0x13], 0
jb 0x426748
mov eax, dword [esp + 0x60]
push eax
call fcn.0043c389
add esp, 4
jmp 0x426748
lea ecx, [esi + 4]
mov eax, ecx
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
lea edi, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4265c0
sub eax, edi
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00401ab0
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0xf8], 0xc
call fcn.00425770
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x30]
neg ebx
sbb bl, bl
inc bl
cmp eax, 0x10
mov byte [esp + 0xf4], 3
jb 0x42660f
mov eax, dword [esp + 0x1c]
push eax
call fcn.0043c389
add esp, 4
test bl, bl
je 0x42671c
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 0xb7
je 0x4266ee
push 0x22
push str.Warning:_while_creating_directory
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
call fcn.00401ab0
push 0xffffffffffffffff
push 0
push esi
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 0xd
call fcn.0040b9c0
push 0x1a
push str._following_error_occured:
lea ecx, [esp + 0x20]
call fcn.0040bab0
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
push 0xa
lea edx, [esp + 0x38]
mov dword [esp + 0x40], ecx
push edx
mov dword [esp + 0x48], ecx
call edi
push eax
call fcn.0043d549
lea eax, [esp + 0x40]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4266a0
sub eax, edx
push eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x20]
call fcn.0040bab0
push 1
push 0x44f474
lea ecx, [esp + 0x20]
call fcn.0040bab0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [ebp + 0x2dc]
call fcn.0040bcc0
cmp dword [esp + 0x30], 0x10
jb 0x426748
mov edx, dword [esp + 0x1c]
push edx
call fcn.0043c389
add esp, 4
jmp 0x426748
mov ebx, dword [ebp + 0x260]
mov eax, dword [ebx + 4]
lea edi, [ebp + 0x25c]
push esi
push eax
push ebx
mov ecx, edi
call fcn.00416bd0
push 1
mov ecx, edi
mov esi, eax
call fcn.00416130
mov dword [ebx + 4], esi
mov ecx, dword [esi + 4]
mov dword [ecx], esi
jmp 0x426748
mov ebx, dword [ebp + 0x260]
mov edx, dword [ebx + 4]
lea edi, [ebp + 0x25c]
push esi
push edx
push ebx
mov ecx, edi
call fcn.00416bd0
push 1
mov ecx, edi
mov esi, eax
call fcn.00416130
mov dword [ebx + 4], esi
mov eax, dword [esi + 4]
mov dword [eax], esi
mov cl, byte [esp + 0x13]
mov eax, dword [esp + 0xb8]
test cl, cl
mov esi, 0x10
sete bl
cmp eax, esi
jb 0x426771
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.0043c389
add esp, 4
cmp dword [esp + 0x90], esi
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
jb 0x4267a5
mov edx, dword [esp + 0x7c]
push edx
call fcn.0043c389
add esp, 4
mov al, bl
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xe8
ret