Function at 0x429550
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5725fb
mov eax, dword fs:[0]
push eax
mov eax, 0x8180
call fcn.005552d0
mov eax, dword [0x5e1da0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor edi, edi
push edi
mov esi, ecx
push 0x5a7
mov dword [ebp - 0x4054], esi
call fcn.004647e8
mov ecx, eax
call fcn.00464a0b
mov ecx, dword [esi + 0x2750]
cmp ecx, edi
je 0x4295b7
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [esi + 0x2750], edi
push 0x1a8
mov dword [esi + 0x274c], edi
call fcn.004575a4
add esp, 4
mov dword [ebp - 0x405c], eax
mov dword [ebp - 4], edi
cmp eax, edi
je 0x4295e1
push edi
mov ecx, eax
call fcn.00455f80
jmp 0x4295e3
xor eax, eax
push 1
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x2750], eax
call fcn.004560d0
mov ecx, dword [esi + 0x2750]
mov eax, dword [ecx]
mov edx, dword [eax + 0x160]
push edi
push 0x40b
call edx
mov ecx, dword [esi + 0x2750]
push 5
call fcn.004649c9
push 0xffffffffffffffff
lea ecx, [esi + 0x2784]
push edi
call fcn.0045921f
push 0xffffffffffffffff
lea ecx, [esi + 0x2978]
push edi
call fcn.0045921f
push 0xffffffffffffffff
lea ecx, [esi + 0x29a0]
push edi
call fcn.0045921f
push 0xffffffffffffffff
push edi
lea ecx, [esi + 0x298c]
call fcn.0045921f
mov eax, dword [esi + 0x2380]
push 0xffff0000
push edi
push 0x1101
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
call fcn.004587ad
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x429686
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x4074], eax
movzx edi, byte [ebp + 8]
push edi
lea ecx, [ebp - 0x4074]
push 0x58e37c
push ecx
mov dword [ebp - 4], 1
mov dword [ebp - 0x4128], edi
call fcn.004026d0
push 0x58c338
lea edx, [ebp - 0x4074]
push edx
lea eax, [ebp - 0x4050]
push eax
call fcn.0040a4c0
mov eax, dword [eax]
add esp, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov ebx, eax
mov eax, dword [ebp - 0x4050]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429703
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [edi - 0x40]
push ecx
call fcn.00555232
add esp, 4
test eax, eax
jne 0x42ac80
cmp ebx, 3
je 0x42972f
cmp ebx, 2
je 0x42972f
cmp ebx, 5
je 0x42972f
cmp ebx, 4
jne 0x42ac80
lea ecx, [ebp - 0x40a8]
mov dword [ebp - 0x406c], 0
call fcn.00459188
lea ecx, [ebp - 0x40bc]
mov byte [ebp - 4], 2
call fcn.00459188
lea ecx, [ebp - 0x4178]
mov byte [ebp - 4], 3
call fcn.00459188
lea ecx, [ebp - 0x40d0]
mov byte [ebp - 4], 4
call fcn.00459188
mov byte [ebp - 4], 5
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42978f
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x4070], eax
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x40a8]
mov byte [ebp - 4], 6
call fcn.0045921f
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x40bc]
call fcn.0045921f
lea edx, [ebp - 0x40bc]
push edx
lea eax, [ebp - 0x40a8]
push eax
lea edx, [edi - 0x41]
lea ecx, [esi + 0x2500]
push edx
call fcn.0044f480
mov ebx, dword [ebp - 0x40a0]
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x429800
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x404c], eax
mov byte [ebp - 4], 7
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x429830
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x4058], eax
lea ecx, [ebp - 0x4118]
mov byte [ebp - 4], 8
call fcn.00459188
lea ecx, [ebp - 0x4164]
mov byte [ebp - 4], 9
call fcn.00459188
lea ecx, [ebp - 0x4150]
mov byte [ebp - 4], 0xa
call fcn.004730a1
lea ecx, [ebp - 0x418c]
mov byte [ebp - 4], 0xb
call fcn.004730a1
mov byte [ebp - 4], 0xc
test ebx, ebx
jle 0x42ac20
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4298a4
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x4084], eax
mov byte [ebp - 4], 0xd
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4298d4
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x4078], eax
mov byte [ebp - 4], 0xe
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x429904
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x4094], eax
push edi
lea ecx, [ebp - 0x4084]
push str._c:_
push ecx
mov byte [ebp - 4], 0xf
call fcn.004026d0
mov ecx, dword [ebp - 0x4084]
add esp, 0xc
push 0x10
lea edx, [ebp - 0x40]
push edx
push 0
push 0
push 0
push 0x20
lea eax, [ebp - 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
lea edx, [ebp - 0x30]
push edx
lea eax, [ebp - 0x4094]
push 0x58a764
push eax
call fcn.004026d0
mov ebx, dword [ebp - 0x4094]
add esp, 0xc
cmp dword [ebx - 0xc], 0
je 0x42998d
lea ecx, [ebp - 0x30]
push ecx
push edi
lea edx, [ebp - 0x4078]
push str._c:___s_
push edx
call fcn.004026d0
add esp, 0x10
jmp 0x4299a2
push edi
lea eax, [ebp - 0x4078]
push 0x58e37c
push eax
call fcn.004026d0
add esp, 0xc
cmp dword [ebp - 0x40a0], 0
jne 0x429b0a
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0xe
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4299cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4078]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4299f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4084]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429a1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x418c]
mov byte [ebp - 4], 0xb
call fcn.004730b8
lea ecx, [ebp - 0x4150]
mov byte [ebp - 4], 0xa
call fcn.004730b8
lea ecx, [ebp - 0x4164]
mov byte [ebp - 4], 9
call fcn.00459475
lea ecx, [ebp - 0x4118]
mov byte [ebp - 4], 8
call fcn.00459475
mov eax, dword [ebp - 0x4058]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 7
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429a7d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x404c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 6
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429aa3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4070]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 5
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429ac9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x40d0]
mov byte [ebp - 4], 4
call fcn.00459475
lea ecx, [ebp - 0x4178]
mov byte [ebp - 4], 3
call fcn.00459475
lea ecx, [ebp - 0x40bc]
mov byte [ebp - 4], 2
call fcn.00459475
lea ecx, [ebp - 0x40a8]
mov byte [ebp - 4], 1
call fcn.00459475
jmp 0x42acb2
mov ecx, dword [ebp - 0x4078]
push 0xffff0002
push 0xffff0000
push 0
push 0
push 0
push 0
push 0
push ecx
push 1
lea ecx, [esi + 0x2360]
call fcn.004688dc
push 0x1869f
push 0
push 0
push 0
push 0
push 0
push 4
push eax
lea ecx, [esi + 0x2360]
mov dword [ebp - 0x4064], eax
call fcn.0046888c
xor eax, eax
mov ecx, 0x1000
lea edi, [ebp - 0x4040]
rep stosd dword es:[edi], eax
mov ecx, 0x1000
lea edi, [ebp - 0x818c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x40b4]
xor ebx, ebx
mov dword [ebp - 0x4048], ebx
test eax, eax
jle 0x429efc
test ebx, ebx
js 0x429fe0
cmp ebx, eax
jge 0x429fe0
mov edx, dword [ebp - 0x40b8]
mov eax, dword [edx + ebx*4]
mov edi, dword [ebp - 0x4058]
lea ecx, [eax - 0x10]
add edi, 0xfffffff0
cmp ecx, edi
je 0x429c0b
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x429bf5
mov edx, dword [ecx]
cmp edx, dword [edi]
jne 0x429bf5
push ecx
call fcn.004023c0
mov dword [ebp - 0x4050], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x429be4
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x4050]
add ecx, 0x10
mov dword [ebp - 0x4058], ecx
jmp 0x429c05
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x4058]
call fcn.004014c0
mov ebx, dword [ebp - 0x4048]
cmp ebx, dword [ebp - 0x40b4]
jge 0x429fe0
mov edx, dword [ebp - 0x40b8]
mov ecx, dword [edx + ebx*4]
mov edi, dword [ebp - 0x404c]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x429c8b
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x429c75
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x429c75
push eax
call fcn.004023c0
mov dword [ebp - 0x4050], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x429c64
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x4050]
add ecx, 0x10
mov dword [ebp - 0x404c], ecx
jmp 0x429c85
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x404c]
call fcn.004014c0
mov ebx, dword [ebp - 0x4048]
mov edx, dword [ebp - 0x404c]
push 0x5c
push edx
call fcn.00553b37
add esp, 8
test eax, eax
jne 0x429ca5
or eax, 0xffffffff
jmp 0x429cab
sub eax, dword [ebp - 0x404c]
inc eax
push eax
lea eax, [ebp - 0x4088]
push eax
lea ecx, [ebp - 0x404c]
call fcn.004284e0
mov ecx, dword [eax]
mov edi, dword [ebp - 0x404c]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
mov byte [ebp - 4], 0x10
cmp eax, edi
je 0x429d30
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x429d1a
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x429d1a
push eax
call fcn.004023c0
mov dword [ebp - 0x4050], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x429d09
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x4050]
add ecx, 0x10
mov dword [ebp - 0x404c], ecx
jmp 0x429d2a
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x404c]
call fcn.004014c0
mov ebx, dword [ebp - 0x4048]
mov eax, dword [ebp - 0x4088]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xf
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x429d56
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
jne 0x429d8e
mov ecx, dword [ebp - 0x4064]
mov edx, dword [ebp - 0x404c]
push 0xffff0002
push ecx
push ebx
push ebx
push ebx
push 2
push 1
push edx
push 0x23
lea ecx, [esi + 0x2360]
call fcn.004688dc
mov edi, eax
mov dword [ebp - 0x818c], edi
jmp 0x429e68
jle 0x429ead
mov eax, dword [ebp - 0x4110]
xor edi, edi
test eax, eax
jle 0x429e35
test edi, edi
js 0x429fe0
cmp edi, eax
jge 0x429fe0
mov edx, dword [ebp - 0x4114]
mov eax, dword [edx + edi*4]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42967c
push eax
mov eax, dword [ebp - 0x404c]
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x429e26
cmp edi, dword [ebp - 0x415c]
jge 0x429fe0
mov ecx, dword [ebp - 0x4058]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x42967c
mov edx, dword [ebp - 0x4160]
mov eax, dword [edx + edi*4]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x429fc3
mov eax, dword [ebp - 0x4110]
inc edi
cmp edi, eax
jl 0x429da4
mov ecx, dword [ebp - 0x4064]
mov edx, dword [ebp - 0x404c]
push 0xffff0002
push ecx
push 0
push 0
push 0
push 2
push 1
push edx
push 0x23
lea ecx, [esi + 0x2360]
call fcn.004688dc
mov edi, eax
mov dword [ebp + ebx*4 - 0x818c], edi
mov ecx, dword [ebp - 0x4110]
lea eax, [ebp - 0x404c]
push eax
push ecx
lea ecx, [ebp - 0x4118]
call fcn.004595ce
mov eax, dword [ebp - 0x415c]
lea edx, [ebp - 0x4058]
push edx
push eax
lea ecx, [ebp - 0x4164]
call fcn.004595ce
mov ecx, dword [ebp - 0x4148]
push edi
push ecx
lea ecx, [ebp - 0x4150]
call fcn.00485229
inc dword [esi + 0x274c]
cmp dword [esi + 0x274c], 0x64
jle 0x429ec6
mov dword [esi + 0x274c], 0
mov eax, dword [esi + 0x274c]
mov ecx, dword [esi + 0x2750]
mov edx, dword [ecx + 0x150]
push 0
push eax
push 0x402
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x40b4]
inc ebx
mov dword [ebp - 0x4048], ebx
cmp ebx, eax
jl 0x429b87
mov eax, dword [ebp - 0x40a0]
mov dword [ebp - 0x407c], 0
test eax, eax
jle 0x42a9fd
mov esi, dword [ebp - 0x407c]
test esi, esi
js 0x429fe0
cmp esi, eax
jge 0x429fe0
cmp esi, dword [ebp - 0x40b4]
jge 0x429fe0
mov eax, dword [ebp - 0x40a4]
mov ecx, dword [eax + esi*4]
mov edx, dword [ebp - 0x40b8]
mov eax, dword [edx + esi*4]
push ecx
mov ecx, dword [ebp - 0x4128]
push eax
push ecx
lea edx, [ebp - 0x4070]
push 0x58e35c
push edx
call fcn.004026d0
add esp, 0x14
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x40d0]
call fcn.0045921f
mov dword [ebp - 0x4060], 0
mov ecx, dword [ebp - 0x4060]
mov esi, dword [ebp - 0x4070]
push 0
lea eax, [ebp - 0x4178]
push eax
push ecx
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x405c], esp
mov ebx, esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x429fe5
cmp eax, dword [esi - 0x10]
jne 0x429fe5
lea edi, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x42a016
cmp edi, dword [ebp - 0x4148]
jge 0x429fe0
mov eax, dword [ebp - 0x414c]
mov edi, dword [eax + edi*4]
mov dword [ebp + ebx*4 - 0x818c], edi
jmp 0x429ead
call fcn.00458513
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x42aa71
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00552451
add esp, 0x10
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x4054]
add edi, 0x10
push edx
add ecx, 0x2500
mov dword [ebx], edi
call fcn.004541d0
mov eax, dword [ebp - 0x4170]
xor esi, esi
mov edi, eax
test eax, eax
jle 0x42a06f
jmp 0x42a046
mov eax, dword [ebp - 0x4170]
test esi, esi
js 0x429fe0
cmp esi, eax
jge 0x429fe0
mov eax, dword [ebp - 0x4174]
mov ecx, dword [ebp - 0x40c8]
lea eax, [eax + esi*4]
push eax
push ecx
lea ecx, [ebp - 0x40d0]
call fcn.004595ce
inc esi
cmp esi, edi
jl 0x42a040
mov eax, dword [ebp - 0x4060]
inc eax
mov dword [ebp - 0x4060], eax
cmp eax, 0x19
jl 0x429f7e
mov eax, dword [ebp - 0x40c8]
test eax, eax
jle 0x42a9dc
mov edx, dword [ebp - 0x40cc]
push 0x4268e0
push 4
push eax
push edx
call fcn.00553c90
add esp, 0x10
cmp dword [ebp - 0x40c8], 0
jle 0x42a9dc
push 0x5ac8
call fcn.004575a4
mov esi, eax
add esp, 4
mov dword [ebp - 0x405c], esi
mov byte [ebp - 4], 0x11
test esi, esi
je 0x42a103
push 0x4214a0
push 0x424e80
push 0x18
push 0x3c8
lea eax, [esi + 8]
push eax
call fcn.005550ff
mov ecx, esi
mov byte [ebp - 4], 0x12
call fcn.004213d0
mov edi, esi
mov dword [ebp - 0x4068], esi
jmp 0x42a10b
xor edi, edi
mov dword [ebp - 0x4068], edi
mov ecx, dword [ebp - 0x406c]
mov esi, dword [ebp - 0x407c]
mov dword [edi], ecx
mov byte [ebp - 4], 0xf
cmp esi, dword [ebp - 0x40a0]
jge 0x429fe0
mov edx, dword [ebp - 0x40a4]
mov eax, dword [edx + esi*4]
push eax
call fcn.00554e39
mov dword [edi + 4], eax
mov edi, dword [ebp + esi*4 - 0x818c]
mov eax, dword [ebp - 0x4184]
add esp, 4
push edi
push eax
lea ecx, [ebp - 0x418c]
call fcn.00485229
cmp esi, dword [ebp - 0x40a0]
jge 0x429fe0
mov ecx, dword [ebp - 0x40a4]
mov eax, dword [ecx + esi*4]
mov ebx, dword [ebp - 0x4054]
push 0xffff0002
push edi
push 0
push 0
push 0
push 2
push 1
push eax
push 0x23
lea ecx, [ebx + 0x2360]
call fcn.004688dc
mov edx, dword [ebp - 0x4068]
push edx
push 0
push 0
push 0
push 0
push 0
push 4
push eax
lea ecx, [ebx + 0x2360]
mov dword [ebp - 0x4088], eax
call fcn.0046888c
push edi
push 2
mov eax, ebx
mov ecx, dword [eax + 0x2380]
push 0x1102
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp + esi*4 - 0x4040], 1
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42967c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x4048], eax
mov byte [ebp - 4], 0x13
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42967c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x4044], edi
lea ecx, [ebp - 0x413c]
mov byte [ebp - 4], 0x14
call fcn.00459188
mov ecx, dword [ebp - 0x40c8]
xor eax, eax
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x4080], 0
mov dword [ebp - 0x4060], eax
test ecx, ecx
jle 0x42a921
jmp 0x42a260
test eax, eax
js 0x429fe0
cmp eax, ecx
jge 0x429fe0
mov ecx, dword [ebp - 0x40cc]
mov eax, dword [ecx + eax*4]
lea esi, [eax - 0x10]
lea ebx, [edi - 0x10]
cmp esi, ebx
je 0x42a326
cmp dword [ebx + 0xc], 0
jl 0x42a310
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x42a310
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x42a2b8
cmp eax, dword [esi]
jne 0x42a2b8
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x42a2ec
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x42aa71
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00552451
add esp, 0x10
lea eax, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x42a305
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
add edi, 0x10
mov dword [ebp - 0x4044], edi
jmp 0x42a326
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x4044]
call fcn.004014c0
mov edi, dword [ebp - 0x4044]
push 0x5c
push edi
call fcn.00553b37
add esp, 8
test eax, eax
jne 0x42a33a
or eax, 0xffffffff
jmp 0x42a33c
sub eax, edi
inc eax
push eax
lea eax, [ebp - 0x40e8]
push eax
lea ecx, [ebp - 0x4044]
call fcn.004284e0
mov eax, dword [eax]
lea esi, [eax - 0x10]
lea ebx, [edi - 0x10]
mov byte [ebp - 4], 0x16
cmp esi, ebx
je 0x42a3fd
cmp dword [ebx + 0xc], 0
jl 0x42a3ed
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x42a3ed
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x42a395
cmp eax, dword [esi]
jne 0x42a395
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x42a3c9
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x42aa71
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00552451
add esp, 0x10
lea eax, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x42a3e2
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
add edi, 0x10
mov dword [ebp - 0x4044], edi
jmp 0x42a3fd
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x4044]
call fcn.004014c0
mov eax, dword [ebp - 0x40e8]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x15
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a423
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42967c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x408c], eax
push 2
push 4
lea ecx, [ebp - 0x4104]
push ecx
lea ecx, [ebp - 0x4044]
mov byte [ebp - 4], 0x17
call fcn.004041c0
mov esi, eax
push 2
push 2
lea edx, [ebp - 0x4120]
push edx
lea ecx, [ebp - 0x4044]
mov byte [ebp - 4], 0x18
call fcn.004041c0
mov edi, eax
push 2
push 0
lea eax, [ebp - 0x411c]
push eax
lea ecx, [ebp - 0x4044]
mov byte [ebp - 4], 0x19
call fcn.004041c0
mov ecx, dword [esi]
mov edx, dword [edi]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [ebp - 0x408c]
push str._s:_s:_s
push ecx
mov byte [ebp - 4], 0x1a
call fcn.004026d0
mov eax, dword [ebp - 0x411c]
add eax, 0xfffffff0
add esp, 0x14
mov byte [ebp - 4], 0x19
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a4e2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4120]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a508
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4104]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x17
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a52e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x3a
lea ecx, [ebp - 0x408c]
call fcn.0041f670
mov esi, dword [ebp - 0x408c]
push esi
call fcn.00554e39
add esp, 4
push 2
push 6
lea ecx, [ebp - 0x4124]
push ecx
lea ecx, [ebp - 0x4044]
mov dword [ebp - 0x4090], eax
call fcn.004041c0
mov eax, dword [eax]
push eax
call fcn.00554e39
mov edi, eax
mov eax, dword [ebp - 0x4124]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a595
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, 0x14
jb 0x42a5a2
lea eax, [esi - 0x10]
jmp 0x42a8dd
push 2
push 0
lea ecx, [ebp - 0x40ec]
push ecx
lea ecx, [ebp - 0x4044]
call fcn.004041c0
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x4048]
push 0x58a764
push eax
mov byte [ebp - 4], 0x1b
call fcn.004026d0
mov eax, dword [ebp - 0x40ec]
add eax, 0xfffffff0
add esp, 0xc
mov byte [ebp - 4], 0x17
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a5f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x4048]
push ecx
call fcn.00554e39
mov ebx, eax
mov esi, ebx
imul esi, esi, 0x3c8
lea edx, [edi + edi*4]
lea eax, [esi + edx*4]
add eax, dword [ebp - 0x4068]
mov edx, dword [ebp - 0x4090]
add esp, 4
lea ecx, [eax + 0xc]
mov dword [ebp - 0x405c], eax
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00485229
mov eax, dword [ebp - 0x4044]
cmp dword [eax - 0xc], 0
jg 0x42a648
or eax, 0xffffffff
jmp 0x42a668
mov ecx, dword [ebp - 0x4044]
push 0x2e
push ecx
call fcn.005550e8
add esp, 8
test eax, eax
jne 0x42a662
or eax, 0xffffffff
jmp 0x42a668
sub eax, dword [ebp - 0x4044]
push eax
lea edx, [ebp - 0x4050]
push edx
lea ecx, [ebp - 0x4044]
call fcn.004056b0
mov ecx, dword [ebp - 0x405c]
mov eax, dword [ecx + 0x1a4]
add ecx, 0x19c
lea edx, [ebp - 0x4050]
push edx
push eax
mov byte [ebp - 4], 0x1c
call fcn.004595ce
mov ecx, dword [ebp - 0x4068]
mov eax, ebx
imul eax, eax, 0xf2
add eax, edi
inc dword [ecx + eax*4 + 0x32c]
mov dword [ecx + eax*4 + 0x37c], 0
inc dword [esi + ecx + 0x3cc]
lea eax, [esi + ecx + 0x3cc]
mov eax, dword [ebp - 0x4134]
mov dword [ebp - 0x405c], eax
test eax, eax
jle 0x42a7e4
xor edi, edi
mov dword [ebp - 0x4090], edi
cmp eax, edi
jle 0x42a757
jmp 0x42a6f6
mov eax, dword [ebp - 0x4134]
test edi, edi
js 0x429fe0
cmp edi, eax
jge 0x429fe0
mov ecx, dword [ebp - 0x4048]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x42967c
mov edx, dword [ebp - 0x4138]
mov eax, dword [edx + edi*4]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x42a741
mov dword [ebp - 0x4090], 1
inc edi
cmp edi, dword [ebp - 0x405c]
jl 0x42a6f0
cmp dword [ebp - 0x4090], 0
jne 0x42a86e
mov eax, dword [ebp - 0x4068]
lea ecx, [ebp - 0x4048]
mov dword [esi + eax + 8], ebx
mov edx, dword [ebp - 0x4134]
push ecx
push edx
lea ecx, [ebp - 0x413c]
call fcn.004595ce
mov eax, dword [ebp - 0x4088]
mov ecx, dword [ebp - 0x4048]
mov esi, dword [ebp - 0x4054]
push 0xffff0002
push eax
push 0
push 0
push 0
push 3
push 3
push ecx
push 0x23
lea ecx, [esi + 0x2360]
call fcn.004688dc
mov edx, dword [ebp - 0x406c]
mov ebx, dword [ebp - 0x4080]
inc edx
imul edx, edx, 0x3e8
add edx, ebx
push edx
push 0
push 0
push 0
push 0
push 0
push 4
push eax
lea ecx, [esi + 0x2360]
call fcn.0046888c
inc ebx
mov dword [ebp - 0x4080], ebx
jmp 0x42a874
mov eax, dword [ebp - 0x4068]
lea ecx, [ebp - 0x4048]
mov dword [esi + eax + 8], ebx
mov edx, dword [ebp - 0x4134]
push ecx
push edx
lea ecx, [ebp - 0x413c]
call fcn.004595ce
mov eax, dword [ebp - 0x4088]
mov ecx, dword [ebp - 0x4048]
mov esi, dword [ebp - 0x4054]
push 0xffff0002
push eax
push 0
push 0
push 0
push 3
push 3
push ecx
push 0x23
lea ecx, [esi + 0x2360]
call fcn.004688dc
mov edx, dword [ebp - 0x406c]
mov edi, dword [ebp - 0x4080]
inc edx
imul edx, edx, 0x3e8
add edx, edi
push edx
push 0
push 0
push 0
push 0
push 0
push 4
push eax
lea ecx, [esi + 0x2360]
call fcn.0046888c
inc edi
mov dword [ebp - 0x4080], edi
jmp 0x42a874
mov esi, dword [ebp - 0x4054]
inc dword [esi + 0x274c]
cmp dword [esi + 0x274c], 0x64
jle 0x42a88d
mov dword [esi + 0x274c], 0
mov eax, dword [esi + 0x274c]
mov esi, dword [esi + 0x2750]
push 0
push eax
mov eax, dword [esi + 0x150]
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x4050]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x17
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a8d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x408c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 0x15
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a8fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4060]
mov ecx, dword [ebp - 0x40c8]
mov edi, dword [ebp - 0x4044]
inc eax
mov dword [ebp - 0x4060], eax
cmp eax, ecx
jl 0x42a260
mov esi, dword [ebp - 0x407c]
mov ebx, dword [ebp - 0x4054]
mov eax, dword [ebx + 0x278c]
lea ecx, [ebx + 0x2784]
lea edx, [ebp - 0x4070]
push edx
push eax
call fcn.004595ce
cmp esi, dword [ebp - 0x40a0]
jge 0x429fe0
mov eax, dword [ebp - 0x40a4]
mov edx, dword [ebx + 0x2980]
lea eax, [eax + esi*4]
lea ecx, [ebx + 0x2978]
push eax
push edx
call fcn.004595ce
mov eax, dword [ebx + 0x29a8]
lea ecx, [ebx + 0x29a0]
push str.Data
push eax
call fcn.00459620
inc dword [ebp - 0x406c]
lea ecx, [ebp - 0x413c]
mov byte [ebp - 4], 0x14
call fcn.00459475
add edi, 0xfffffff0
mov byte [ebp - 4], 0x13
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a9b4
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [ebp - 0x4048]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a9e2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42a9e2
mov esi, dword [ebp - 0x407c]
mov eax, dword [ebp - 0x40a0]
inc esi
mov dword [ebp - 0x407c], esi
cmp esi, eax
jl 0x429f1a
mov esi, dword [ebp - 0x4054]
mov ecx, dword [ebp - 0x4064]
mov edx, dword [esi + 0x2380]
push ecx
push 2
push 0x1102
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [ebp - 0x40e4]
call fcn.004730a1
lea ecx, [ebp - 0x4100]
mov byte [ebp - 4], 0x1d
call fcn.0046d30a
mov edx, dword [ebp - 0x40dc]
xor edi, edi
mov byte [ebp - 4], 0x1e
cmp dword [ebp - 0x40a0], edi
jle 0x42aaf4
mov ebx, dword [ebp - 0x4040]
test edi, edi
jne 0x42aa76
mov eax, dword [ebp - 0x818c]
push eax
push edx
lea ecx, [ebp - 0x40e4]
call fcn.00485229
mov ecx, dword [ebp - 0x40f8]
push ebx
push ecx
jmp 0x42aad6
call fcn.004015e0
xor eax, eax
test edx, edx
jle 0x42aaa7
test eax, eax
js 0x429fe0
cmp eax, edx
jge 0x429fe0
mov ecx, dword [ebp - 0x40e0]
mov ecx, dword [ecx + eax*4]
cmp dword [ebp + edi*4 - 0x818c], ecx
je 0x42ac57
inc eax
cmp eax, edx
jl 0x42aa7c
mov eax, dword [ebp + edi*4 - 0x818c]
push eax
push edx
lea ecx, [ebp - 0x40e4]
call fcn.00485229
mov al, byte [ebp + edi*4 - 0x4040]
mov edx, dword [ebp - 0x40f8]
mov byte [ebp - 0x405c], al
mov ecx, dword [ebp - 0x405c]
push ecx
push edx
lea ecx, [ebp - 0x4100]
call fcn.0046d443
mov edx, dword [ebp - 0x40dc]
inc edi
cmp edi, dword [ebp - 0x40a0]
jl 0x42aa50
xor edi, edi
test edx, edx
jle 0x42ab4d
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
test edi, edi
js 0x429fe0
cmp edi, dword [ebp - 0x40f8]
jge 0x429fe0
mov eax, dword [ebp - 0x40fc]
cmp byte [eax + edi], 0
jne 0x42ab48
cmp edi, edx
jge 0x429fe0
mov ecx, dword [ebp - 0x40e0]
mov eax, dword [ecx + edi*4]
mov edx, dword [esi + 0x2380]
push eax
push 0
push 0x1101
push edx
call ebx
mov edx, dword [ebp - 0x40dc]
inc edi
cmp edi, edx
jl 0x42ab00
lea ecx, [ebp - 0x4100]
mov byte [ebp - 4], 0x1d
call fcn.0046d321
lea ecx, [ebp - 0x40e4]
mov byte [ebp - 4], 0xf
call fcn.004730b8
mov eax, dword [ebp - 0x4094]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xe
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ab91
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4078]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42abb7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4084]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42abdd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x4064], 0
je 0x42ac20
mov ecx, dword [ebp - 0x4064]
mov edx, dword [esi + 0x2380]
push ecx
push 4
push 0x110a
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jne 0x42ac20
mov eax, dword [ebp - 0x4064]
mov ecx, dword [esi + 0x2380]
push eax
push 0
push 0x1101
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x2750]
test ecx, ecx
je 0x42ac3d
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [esi + 0x2750], 0
push 1
push 0x5a7
mov ecx, esi
call fcn.004647e8
mov ecx, eax
call fcn.00464a0b
jmp 0x429a1b
cmp dword [ebp + edi*4 - 0x4040], 0
je 0x42aae7
cmp eax, dword [ebp - 0x40f8]
jge 0x429fe0
mov edx, dword [ebp - 0x40fc]
mov byte [eax + edx], 1
jmp 0x42aae1
mov ecx, dword [esi + 0x2750]
test ecx, ecx
je 0x42ac9d
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [esi + 0x2750], 0
push 1
push 0x5a7
mov ecx, esi
call fcn.004647e8
mov ecx, eax
call fcn.00464a0b
mov eax, dword [ebp - 0x4074]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42acdb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005520da
mov esp, ebp
pop ebp
ret 4