Function at 0x427320
Capabilities:
Get disk information

Disassembly:
jb 0x426cf0
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x5265736f
arpl word gs:[eax], dx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, 0
add byte [eax], al
js 0x426d48
inc edx
add byte [eax], al
add byte [eax], al
add byte [edx], al
add al, 0x50
jb 0x426d56
arpl word [edx], ax
add byte [edi + ebx + 0x40], bh
add byte [eax + eax], al
add byte [eax], al
add al, byte [ebx]
dec edi
bound ebp, qword [edx + 2]
add byte [eax + edx + 0x80040], bl
add byte [eax], al
add al, byte [ecx + eax*2]
jb 0x426d6d
xor dword [edx], eax
add byte [eax + edx + 0xc0040], bl
add byte [eax], al
add al, byte [ecx + eax*2]
jb 0x426d7d
xor al, byte [edx]
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, 0x6d
inc edx
add byte [edi], cl
adc eax, 0x72614d54
jae 0x426d94
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x426d60
dec ecx
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
enter 0x4026, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edi], cl
push ebx
jns 0x426dc7
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
je 0x426dbb
insd dword es:[edi], dx
push ebx
jns 0x426dce
push ebp
je 0x426dc7
insb byte es:[edi], dx
jae 0x426d64
add eax, dword [eax]
invalid
add bh, bh
inc dword [edx]
add byte [eax], al
add ah, cl
add eax, 0xffffffac
jmp 0x43a370
add al, byte [eax]
add byte [eax], al
int3
push dword [0xc0830001]
lodsb al, byte [esi]
jmp 0x43a4f0
mov edi, 0x83000136
inc esp
and al, 4
lodsb al, byte [esi]
jmp fcn.00412164
inc dword [ebx - 0x53fbdbbc]
jmp fcn.004121a8
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x5400426d], ah
add byte [eax], al
inc edx
add byte [eax + eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], ah
insd dword es:[edi], dx
inc edx
add byte [esi + ebp*2], dh
inc edx
add byte [eax + 0x426d], bh
add byte [eax], al
add byte [esi + ebp*2], dh
inc edx
add al, bl
outsb dx, byte [esi]
inc edx
add byte [edi + 0x6e], al
inc edx
add byte [ecx + 0x426e], cl
add byte [eax], al
add byte [edi + 0x5c00426e], dl
add byte [eax], al
add byte [edi - 0x631bffc0], dh
inc eax
add ah, ch
pushfd
inc eax
add ah, ch
lahf
inc eax
add ah, ah
lahf
inc eax
add byte [ecx], dh
inc ecx
add byte [eax + 0x21], al
inc ecx
add byte [eax], cl
inc eax
add byte [eax], al
mov al, byte [0x21540040]
inc ecx
add ah, cl
lcall 0x43, 0xa4140040
push cs
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x72], al
inc edx
add byte [eax + eax], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
add byte [eax + eax], cl
add byte [eax], al
pop es
inc esi
dec ecx
outsb dx, byte [esi]
insb byte es:[edi], dx
imul ebp, dword [esi + 0x65], 0x40000002
jb 0x426ea8
add byte [eax + eax], cl
add byte [ecx], cl
inc esi
dec edi
jbe 0x426ed5
jb 0x426ed8
insb byte es:[edi], dx
outsd dx, dword [esi]
ja 0x426e78
add byte [eax], al
pushfd
adc byte [eax], al
push eax
add byte [eax], al
add byte [esi], al
inc esi
inc ebx
outsd dx, dword [esi]
jne 0x426ef4
je 0x426e8a
add byte [eax], al
add byte [ecx], al
add byte [ebp + 0x4d00426e], ch
add bh, bh
inc dword [eax]
add byte [0x72614d54], dl
jae 0x426f06
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x426ed2
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
daa
jo 0x426f19
jae 0x426f11
jb 0x426ed5
add byte [esp], dl
inc ebx
add byte [edi], al
inc esp
jae 0x426f2c
jb 0x426f29
jns 0x426ebf
add byte [eax], al
add byte [eax], al
add byte [eax], cl
add byte [ecx], al
or ah, dl
outsb dx, byte [esi]
add byte [eax], al
or byte [eax], al
add dword [eax], ecx
aam 0x6e
inc edx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
fsubr dword [esi + 0x42]
outsb dx, byte [esi]
inc edx
add byte [edi], al
pop es
adc eax, 0x72614d54
jae 0x426f48
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x426f14
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
xor al, 0x6e
inc edx
add al, dh
sub byte [eax], al
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
je 0x426f64
insd dword es:[edi], dx
push ebx
jns 0x426f77
push ebp
je 0x426f70
imul ebp, dword [ebx + esi*2], 0x2000000
insb byte es:[edi], dx
jae 0x426f0a
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], bl
outsd dx, dword [esi]
inc edx
sbb byte [edi + 0x42], ch
add byte [esi], cl
or edx, dword [ebp + ecx*2 + 0x61]
jb 0x426f92
push 0x656c6c61
jb 0x426f2a
add byte [eax], al
add byte [ecx], al
add dword [eax], eax
add byte [eax], al
and byte [ebp + 0x42], ch
add byte [eax], al
add byte [eax], ah
insd dword es:[edi], dx
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
and byte [ebp + 0x42], ch
add byte [eax], al
add byte [eax], al
add byte [eax], al
or dword [esi + 0x44], eax
imul esi, dword [ebx + 0x70], 0x7265736f
add al, byte [eax]
add al, byte [eax]
adc eax, dword [eax]
or al, ah
mov eax, dword [0x49080043]
jo 0x426fb9
jae 0x426fb1
jb 0x426f50
add byte [edx], al
add byte [ebx], dl
add byte [eax], cl
loopne 0x426ef7
inc ebx
add byte [eax], cl
dec ecx
outsb dx, byte [esi]
push ebx
je 0x426fd0
imul ebp, dword [esi + 0x67], 0x32640000
inc eax
add byte [edx], al
or byte [ebx + ecx*2], al
xor al, byte [eax]
add cl, byte [eax]
add al, 0x4b
inc edx
add byte [edx], al
push ebx
inc edx
add al, byte [eax]
add byte [eax + edx + 0x4d060040], bl
push es
dec ebp
popal
js 0x426fc8
outsb dx, byte gs:[esi]
add al, byte [eax]
add al, byte [eax]
or byte [eax], ch
mov byte [0x4f090043], al
jne 0x426fff
push ebx
je 0x427000
imul ebp, dword [esi + 0x67], 0x32640000
inc eax
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, byte [eax + 0x1004012]
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [ecx], bl
inc ebx
add byte [ebx], cl
dec ecx
outsb dx, byte [esi]
dec edi
jne 0x427022
push ebx
je 0x427023
imul ebp, dword [esi + 0x67], 0x32640000
inc eax
add byte [edx], al
or byte [ebx + ecx*2], al
inc edx
add byte [edx], al
push ebx
inc edx
add al, byte [eax]
add byte [eax + edx + 0x4d060040], bl
inc eax
add byte [esi], al
dec ebp
popal
js 0x42701b
outsb dx, byte gs:[esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x43], ah
add byte [esi], al
inc ecx
jae 0x42701f
outsb dx, byte [esi]
jae 0x42704a
add byte [eax], al
xor al, byte fs:[eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ecx], al
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [eax], cl
inc ebx
add byte [esi], al
inc ecx
jae 0x42703d
outsb dx, byte [esi]
jae 0x427068
add byte [eax], al
xor al, byte fs:[eax]
add dword [eax], eax
fcom dword [ecx]
inc eax
add byte [ecx], al
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [edi + ebx*4 + 0x43], ch
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, bl
adc dword [eax], eax
add dword [ebx + 2], edx
add byte [edx], al
add byte [eax], cl
insb byte es:[edi], dx
lahf
inc ebx
add byte [esi], al
inc ecx
jae 0x42705b
outsb dx, byte [esi]
jae 0x427086
add byte [eax], al
xor al, byte fs:[eax]
add byte [edx], al
add al, byte [eax + 0x1004012]
add al, byte [edx]
adc byte [edx], 0x40
add byte [ecx], al
push ebx
add al, byte [eax]
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte [eax]
or ah, cl
lahf
inc ebx
add byte [esi], al
inc ecx
jae 0x427089
outsb dx, byte [esi]
jae 0x4270b4
imul eax, dword [eax], 0x40326400
add byte [edx], al
add al, bl
adc dword [eax], eax
add dword [ebx + 2], edx
add byte [eax], al
int3
add byte [eax], al
xor al, byte fs:[eax]
add al, byte [eax]
fcom dword [ecx]
inc eax
add byte [ecx], al
push ebx
add al, byte [eax]
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte gs:[eax]
add al, byte [eax]
or byte [edi + ebx*4 + 0x41060043], ch
jae 0x4270cb
je 0x4270de
cmp byte [eax], al
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, byte [eax + 0x1004012]
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x43], al
add byte [esi], al
inc ecx
jae 0x4270e9
je 0x4270fc
cmp byte [eax], al
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, bl
adc dword [eax], eax
add dword [ebx + 2], edx
add byte [edx], al
add byte [eax], cl
mov al, byte [0x50043a2]
inc ecx
jae 0x427104
popal
ja 0x4270b5
add byte [eax], al
xor al, byte fs:[eax]
add dword [edx], eax
sub byte [eax + eax*2], cl
add dword [edx + 2], eax
add byte [edx], al
add byte [eax], cl
or al, 0xa1
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add ch, byte [eax]
dec esp
inc eax
add byte [ecx], al
inc edx
add al, byte [eax]
add al, byte [eax]
or byte [ecx], cl
inc ebx
add byte [0x73756c46], al
add eax, 0x73756c46
push 0
add byte [eax], al
add byte [edx], al
add byte [eax], cl
sahf
inc ebx
add byte [eax], cl
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebp + 0x65], cx
insd dword es:[edi], dx
add byte [eax], al
xor al, byte fs:[eax]
add dword [eax], eax
pushfd
adc byte [eax], al
add al, 0x53
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add byte [eax + edx + 0x53040040], bl
imul edi, dword [edx + 0x65], 0x20002
or byte [eax], al
mov dword [0x520a0043], eax
add byte [eax], cl
add byte [ebx + 0x520a0043], ah
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebp + 0x65], cx
insd dword es:[edi], dx
add byte [eax], al
xor al, byte fs:[eax]
add al, byte [eax]
xor al, byte fs:[eax]
push es
dec edi
insb byte es:[edi], dx
push eax
je 0x427192
add al, byte [eax]
add byte [eax + edx + 0x4e070040], bl
ja 0x42717f
imul edi, dword [edx + 0x65], 0x20002
or byte [eax + 0x46090043], bl
imul edi, dword [eax + 0x53], 0x6e697274
add byte [bx + si], al
xor al, byte fs:[eax]
add dword [ecx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x4271c4
add al, byte [eax]
add al, byte [eax]
or ah, dl
mov al, byte [0x550f0043]
outsb dx, byte [esi]
jae 0x4271c1
inc si
imul edi, dword [eax + 0x53], 0x6e697274
add byte [bx + si], al
xor al, byte fs:[eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x4271ed
add al, byte [eax]
add al, byte [eax]
or byte [esi + ebx*4 + 0x41110043], bl
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x4271f7
outsb dx, byte [esi]
inc ecx
jae 0x4271d4
inc ecx
outsb dx, byte [esi]
jae 0x4271ff
add byte [eax], al
xor al, byte fs:[eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x427218
add al, byte [eax]
add al, byte [eax]
or ah, dh
sahf
inc ebx
add byte [ecx], dl
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x427222
outsb dx, byte [esi]
inc ecx
jae 0x4271ff
outsb dx, byte [esi]
jae 0x42722a
add byte [eax], al
xor al, byte fs:[eax]
xor al, byte [eax]
add al, byte [edx]
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x427243
add al, byte [eax]
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte [eax]
or ah, dl
sahf
inc ebx
add byte [ecx], dl
inc ecx
insb byte es:[edi], dx
int3
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x42725d
outsb dx, byte [esi]
inc ecx
jae 0x42724e
je 0x427261
cmp byte [eax], al
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, byte [eax + 0x3004012]
xor al, byte [eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x42727e
add al, byte [eax]
add al, byte [eax]
or byte [edi + ebx*4], dh
inc ebx
add byte [ecx + eax*2], dl
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x427288
outsb dx, byte [esi]
inc ecx
jae 0x427279
outsb dx, byte [esi]
imul esp, dword [ebx + 0x6f], 0x6564
add byte [eax], al
xor al, byte fs:[eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x4272ac
add al, byte [eax]
add al, byte [eax]
add byte [eax], al
inc esp
jb 0x427285
add byte [ecx], dl
das
push esp
inc ecx
jb 0x4272bc
popal
jns 0x427289
push ebx
jns 0x4272c3
je 0x4272b7
insd dword es:[edi], dx
push ebx
jns 0x4272ca
push ebp
je 0x4272c3
insb byte es:[edi], dx
jae 0x42728b
push esp
dec ebp
popal
jb 0x4272d5
jae 0x4272cb
push 0x656c6c61
jb 0x427297
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x427297
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x5265736f
arpl word gs:[esi], di
adc byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
invalid
push es
push ebx
jns fcn.004272fc
jae 0x4272fe
je 0x4272f0
insd dword es:[edi], dx
insd dword es:[edi], dx
mov al, 0x6c
inc edx
add byte [edx], al
add byte [eax], al
add byte [eax + 0xf004272], bl
add byte [edi], cl
add eax, 0x6f725054
arpl ax, cx
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edi], cl
push ebx
jns 0x42732b
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
jae 0x42732d
je 0x42731f
insd dword es:[edi], dx
insd dword es:[edi], dx
push ebx
push ebx
jns 0x427332
push ebp
je 0x42732b
insb byte es:[edi], dx
jae 0x4272c6
add bh, bh
inc dword [edx]
add byte [ebx - 0x27fa0040], cl
pop ss
invalid
mov eax, eax
inc dword [0x7617d8]
sar bh, 5
fcom dword [edi]
jbe 0x4272d2
jne 0x4272de
mov eax, 0x7617c8
enter 0x7617, 0
call fcn.0040b9dc
ret
or byte [esi - 0x77], ah
add dword [esi - 0x77], esp
adc ebx, dword [ebx + 0x5d]
ret 4
in al, dx
add byte [ebp - 0x75], dl
in al, dx
add esp, 0xfffffbd4
push ebx
push esi
push edi
xor ecx, ecx
leave
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x42c], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x42744c
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x218]
push eax
push 0x104
call sub.kernel32.dll_GetLogicalDriveStringsW
mov esi, eax
test esi, esi
jle 0x427424
invalid
lea ebx, [ebp - 0x218]
lea eax, [ebx + 4]
mov word [eax], 0
push 0x104
lea eax, [ebp - 0x424]
push eax
push ebx
call sub.kernel32.dll_QueryDosDeviceW
mov esi, eax
test esi, esi
jle 0x42740d
lea eax, [ebp - 4]
lea edx, [ebp - 0x424]
mov ecx, 0x106
call fcn.0040c8ec
mov ecx, 1
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0040cd60
test eax, eax
jle 0x42740d
mov eax, dword [ebp - 4]
test eax, eax
je 0x4273c3
mov eax, dword [eax - 4]
mov esi, eax
mov edi, dword [ebp - 8]
test edi, edi
je 0x4273cf
mov edi, dword [edi - 4]
lea eax, [ebp - 0x428]
push eax
mov ecx, edi
sub ecx, esi
lea edx, [esi + 1]
mov eax, dword [ebp - 8]
call fcn.0040cc0c
mov eax, dword [ebp - 0x428]
push eax
lea eax, [ebp - 0x42c]
mov edx, ebx
call fcn.0040c8b0
mov edx, dword [ebp - 0x42c]
mov eax, dword [ebp - 0xc]
pop ecx
call fcn.0040ca9c
jmp 0x427424
add ebx, 2
cmp word [ebx], 0
jne 0x42740a
add ebx, 4
test ebx, ebx
je 0x42741e
cmp word [ebx], 0
jne 0x427372
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x427453
lea eax, [ebp - 0x42c]
mov edx, 2
call fcn.0040ba3c
lea eax, [ebp - 4]
call fcn.0040b9dc
pop eax
jmp eax
push ebx
push esi
push edi
add esp, 0xfffffff0
mov esi, edx
lea edi, [esp]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, eax
mov eax, dword [ebx + 0x50]
cmp eax, 4
jge 0x43a397
add eax, eax
lea edi, [ebx + eax*8 + 0xc]
mov esi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x43a40a
mov esi, eax
sub esi, 4
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x43a3a6
mov eax, dword [eax - 4]
cmp eax, esi
jne 0x43a3fa
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x43a3b4
mov eax, dword [eax - 4]
cmp eax, 4
jge 0x43a3d3
push 4
lea eax, [ebx + 0x4c]
mov ecx, 1
mov edx, dword [0x427240]
call fcn.0040f0f4
add esp, 4
jmp 0x43a3fa
mov eax, dword [ebx + 0x4c]
mov edi, eax
test edi, edi
je 0x43a3df
mov edi, dword [edi - 4]
mov eax, edi
add eax, eax
push eax
lea eax, [ebx + 0x4c]
mov ecx, 1
mov edx, dword [0x427240]
call fcn.0040f0f4
add esp, 4
mov eax, esi
add eax, eax
mov edx, dword [ebx + 0x4c]
lea edi, [edx + eax*8]
mov esi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x50]
add esp, 0x10
pop edi
pop esi
pop ebx
ret
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe0
mov esi, edx
lea edi, [esp]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
mov eax, dword [esi + 0x50]
cmp eax, 4
jg 0x43a54a
mov edi, eax
dec edi
test edi, edi
jl 0x43a5be
inc edi
xor ebx, ebx
mov ebp, ebx
add ebp, ebp
lea eax, [esi + ebp*8 + 0xc]
mov edx, esp
call fcn.0043a4cc
test al, al
je 0x43a544
lea eax, [esp + 0x10]
call fcn.0043a4c0
push esi
push edi
lea edi, [esi + ebp*8 + 0xc]
lea esi, [esp + 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
inc ebx
dec edi
jne 0x43a518
jmp 0x43a5be
xor ebx, ebx
mov edi, ebx
add edi, edi
lea eax, [esi + edi*8 + 0xc]
mov edx, esp
call fcn.0043a4cc
test al, al
je 0x43a576
lea eax, [esp + 0x10]
call fcn.0043a4c0
push esi
lea edi, [esi + edi*8 + 0xc]
lea esi, [esp + 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
inc ebx
cmp ebx, 4
jne 0x43a54c
mov edi, dword [esi + 0x50]
sub edi, 4
dec edi
test edi, edi
jl 0x43a5be
inc edi
xor ebx, ebx
mov ebp, ebx
add ebp, ebp
mov eax, dword [esi + 0x4c]
lea eax, [eax + ebp*8]
mov edx, esp
call fcn.0043a4cc
test al, al
je 0x43a5ba
lea eax, [esp + 0x10]
call fcn.0043a4c0
mov eax, dword [esi + 0x4c]
push esi
push edi
lea esi, [esp + 0x18]
lea edi, [eax + ebp*8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
inc ebx
dec edi
jne 0x43a58a
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
ret