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

Disassembly:
push 0xffffffffffffffff
push 0x59ad5e
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x619e70]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov esi, ecx
fld dword [0x5e2900]
mov dword [esp + 0x2c], vtable.CClockSet.0
fst dword [esp + 0x30]
fst dword [esp + 0x34]
fst dword [esp + 0x38]
fstp dword [esp + 0x3c]
mov eax, dword [esi + 0x580]
mov dword [esp + 0x48], 0
test eax, eax
je 0x456b62
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
test eax, eax
je 0x456b62
mov eax, dword [eax + 4]
test eax, eax
je 0x456b62
jmp 0x4565a0
mov ebx, dword [eax]
test ebx, ebx
je 0x456b44
mov edx, dword [ebx]
mov eax, dword [edx + 0x70]
push esi
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x2c]
push esi
mov ecx, ebx
call eax
mov edi, eax
cmp edi, dword [esi + 0x630]
jle 0x45665e
mov ecx, dword [esi + 0x62c]
test ecx, ecx
je 0x4565fc
cmp dword [ecx - 4], 0
lea eax, [ecx - 4]
je 0x4565e9
mov edx, dword [ecx]
mov eax, dword [edx]
push 3
call eax
jmp 0x4565f2
push eax
call fcn.0056cbb4
add esp, 4
mov dword [esi + 0x62c], 0
mov dword [esi + 0x630], edi
inc edi
xor ecx, ecx
mov eax, edi
mov edx, 0x6c
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0056cbbf
add esp, 4
mov dword [esp + 0x20], eax
mov byte [esp + 0x48], 1
test eax, eax
je 0x456651
push 0x455a70
push 0x455cc0
push edi
lea ebp, [eax + 4]
push 0x6c
push ebp
mov dword [eax], edi
call fcn.0057dfef
jmp 0x456653
xor ebp, ebp
mov byte [esp + 0x48], 0
mov dword [esi + 0x62c], ebp
cmp dword [esi + 0x630], 1
jle 0x456677
mov edx, dword [ebx]
mov eax, dword [edx + 0x34]
push esi
mov ecx, ebx
call eax
mov dword [esi + 0x634], eax
mov eax, dword [esi + 0x630]
fld dword [0x5e2900]
imul eax, eax, 0x6c
add eax, dword [esi + 0x62c]
xor ebp, ebp
mov byte [eax + 4], 0
fst dword [eax + 0x48]
fst dword [eax + 0x4c]
fst dword [eax + 0x50]
fst dword [eax + 0x54]
fst dword [eax + 0x5c]
fst dword [eax + 0x60]
fst dword [eax + 0x64]
fstp dword [eax + 0x68]
cmp dword [esi + 0x630], ebp
jle 0x456746
fldz
xor edi, edi
mov ecx, dword [esi + 0x62c]
fcom dword [ecx + edi + 0x48]
fnstsw ax
test ah, 0x41
jne 0x456734
mov edx, dword [ebx]
fstp st(0)
mov edx, dword [edx + 0x44]
lea eax, [esp + 0x2c]
push eax
push ebp
push esi
mov ecx, ebx
call edx
fldz
test eax, eax
je 0x456734
fld dword [esp + 0x30]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4566fc
mov eax, dword [esi + 0x62c]
fstp dword [eax + edi + 0x48]
jmp 0x4566fe
fstp st(0)
fld dword [esp + 0x34]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x456717
mov ecx, dword [esi + 0x62c]
fstp dword [ecx + edi + 0x4c]
jmp 0x456719
fstp st(0)
fld dword [esp + 0x38]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x456732
mov edx, dword [esi + 0x62c]
fstp dword [edx + edi + 0x50]
jmp 0x456734
fstp st(0)
inc ebp
add edi, 0x6c
cmp ebp, dword [esi + 0x630]
jl 0x4566ba
fstp st(0)
push 0xf000
push 0
mov ecx, esi
call fcn.004650a0
test eax, eax
jne 0x456839
mov eax, dword [ebx]
mov edx, dword [eax + 0x44]
lea ecx, [esp + 0x2c]
push ecx
push 0xffffffffffffffff
push esi
mov ecx, ebx
call edx
test eax, eax
je 0x4568ff
mov eax, dword [esi + 0x62c]
test eax, eax
je 0x4568ff
mov ecx, dword [esi + 0x630]
imul ecx, ecx, 0x6c
push str.Current
lea edx, [ecx + eax + 4]
push 0x40
push edx
call fcn.0043a290
add esp, 0xc
fldz
fld dword [esp + 0x30]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4567c4
mov eax, dword [esi + 0x630]
mov ecx, dword [esi + 0x62c]
imul eax, eax, 0x6c
fstp dword [eax + ecx + 0x48]
jmp 0x4567c6
fstp st(0)
fld dword [esp + 0x34]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4567e8
mov edx, dword [esi + 0x630]
mov eax, dword [esi + 0x62c]
imul edx, edx, 0x6c
fstp dword [edx + eax + 0x4c]
jmp 0x4567ea
fstp st(0)
fld dword [esp + 0x38]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45680c
mov ecx, dword [esi + 0x630]
mov edx, dword [esi + 0x62c]
imul ecx, ecx, 0x6c
fstp dword [ecx + edx + 0x50]
jmp 0x45680e
fstp st(0)
fld dword [esp + 0x3c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4568fd
mov eax, dword [esi + 0x630]
mov ecx, dword [esi + 0x62c]
imul eax, eax, 0x6c
fstp dword [eax + ecx + 0x54]
jmp 0x4568ff
mov ecx, dword [esi + 0x62c]
test ecx, ecx
je 0x4568ff
mov edx, dword [esi + 0x630]
fld dword [eax + 0x158]
imul edx, edx, 0x6c
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
push 0xf000
push 1
fstp dword [edx + ecx + 0x48]
mov ecx, esi
call fcn.004650a0
test eax, eax
je 0x456895
fld dword [eax + 0x158]
mov eax, dword [esi + 0x630]
mov ecx, dword [esi + 0x62c]
imul eax, eax, 0x6c
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [eax + ecx + 0x4c]
push 0xf000
push 2
mov ecx, esi
call fcn.004650a0
test eax, eax
je 0x4568c8
mov edx, dword [esi + 0x630]
fld dword [eax + 0x158]
mov eax, dword [esi + 0x62c]
imul edx, edx, 0x6c
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [edx + eax + 0x50]
push 0xf000
push 3
mov ecx, esi
call fcn.004650a0
test eax, eax
je 0x4568ff
mov ecx, dword [esi + 0x630]
fld dword [eax + 0x158]
mov edx, dword [esi + 0x62c]
imul ecx, ecx, 0x6c
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [ecx + edx + 0x54]
jmp 0x4568ff
fstp st(0)
cmp dword [esi + 0x62c], 0
je 0x456936
xor edi, edi
cmp dword [esi + 0x630], edi
jle 0x456936
xor ebp, ebp
mov ecx, dword [esi + 0x62c]
mov eax, dword [ebx]
mov eax, dword [eax + 0x30]
lea edx, [ecx + ebp + 4]
push edx
push edi
push esi
mov ecx, ebx
call eax
inc edi
add ebp, 0x6c
cmp edi, dword [esi + 0x630]
jl 0x456914
or ebp, 0xffffffff
cmp dword [esi + 0x59c], ebp
jne 0x456962
mov edx, dword [ebx]
mov edx, dword [edx + 0x78]
lea eax, [esp + 0x20]
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x28], ebp
call edx
test eax, eax
je 0x456962
mov eax, dword [esp + 0x20]
mov dword [esi + 0x59c], eax
cmp dword [esi + 0x5a0], ebp
jne 0x45698b
mov edx, dword [ebx]
mov edx, dword [edx + 0x74]
lea eax, [esp + 0x20]
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x28], ebp
call edx
test eax, eax
je 0x45698b
mov eax, dword [esp + 0x20]
mov dword [esi + 0x5a0], eax
cmp byte [esi + 0x5a4], 0
lea edi, [esi + 0x5a4]
jne case.default.0x4569c3
mov edx, dword [ebx]
mov edx, dword [edx + 0x7c]
lea eax, [esp + 0x20]
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x28], 0
call edx
test eax, eax
je case.default.0x4569c3
mov eax, dword [esp + 0x20]
dec eax
cmp eax, 9
ja case.default.0x4569c3
jmp dword [eax*4 + 0x456be0]
push str.Samsung
jmp 0x456a0e
push str.Qimonda
jmp 0x456a0e
push str.Elpida
jmp 0x456a0e
push str.Etron
jmp 0x456a0e
push str.Nanya
jmp 0x456a0e
push str.Hynix
jmp 0x456a0e
push str.Mosel
jmp 0x456a0e
push str.Winbond
jmp 0x456a0e
push str.ESMT
jmp 0x456a0e
push str.Micron
push 0x80
push edi
call fcn.0057eed3
add esp, 0xc
cmp dword [esi + 0x624], ebp
jne 0x456a48
mov eax, dword [ebx]
mov edx, dword [eax + 0x80]
lea ecx, [esp + 0x20]
push ecx
push esi
mov ecx, ebx
mov dword [esp + 0x28], ebp
call edx
test eax, eax
je 0x456a48
mov eax, dword [esp + 0x20]
mov dword [esi + 0x624], eax
fld dword [0x5e2900]
lea eax, [esp + 0x1c]
push eax
fst dword [esp + 0x18]
lea ecx, [esp + 0x1c]
fst dword [esp + 0x1c]
push ecx
fstp dword [esp + 0x24]
mov edx, dword [ebx]
mov edx, dword [edx + 0x88]
lea eax, [esp + 0x1c]
push eax
push esi
mov ecx, ebx
call edx
test eax, eax
je 0x456ac9
fldz
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x456a91
fstp dword [esi + 0x4d4]
jmp 0x456a93
fstp st(0)
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x456aae
fst dword [esi + 0x4d8]
fstp dword [esi + 0x4d0]
jmp 0x456ab0
fstp st(0)
fld dword [esp + 0x1c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x456ac7
fstp dword [esi + 0x4d8]
jmp 0x456ac9
fstp st(0)
fld dword [0x5e2900]
lea ecx, [esp + 0x1c]
push ecx
fst dword [esp + 0x18]
lea edx, [esp + 0x1c]
fst dword [esp + 0x1c]
push edx
fstp dword [esp + 0x24]
mov eax, dword [ebx]
mov edx, dword [eax + 0x8c]
lea ecx, [esp + 0x1c]
push ecx
push esi
mov ecx, ebx
call edx
test eax, eax
je 0x456b44
fldz
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x456b12
fstp dword [esi + 0x4dc]
jmp 0x456b14
fstp st(0)
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x456b29
fstp dword [esi + 0x4e0]
jmp 0x456b2b
fstp st(0)
fld dword [esp + 0x1c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x456b42
fstp dword [esi + 0x4e4]
jmp 0x456b44
fstp st(0)
mov eax, dword [esp + 0x28]
test eax, eax
je 0x456b62
mov eax, dword [eax + 8]
test eax, eax
je 0x456b62
mov dword [esp + 0x28], eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x4565a0
or eax, 0xffffffff
cmp dword [esi + 0x59c], eax
jne 0x456bcb
push 0x10c
mov dword [esp + 0x24], eax
call fcn.0056cb85
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x48], 2
test eax, eax
je 0x456b9d
push 0
push 0x10000
mov ecx, eax
call fcn.0046f770
mov edi, eax
jmp 0x456b9f
xor edi, edi
mov eax, dword [edi]
mov edx, dword [eax + 0x78]
lea ecx, [esp + 0x20]
push ecx
push esi
mov ecx, edi
mov byte [esp + 0x50], 0
call edx
test eax, eax
je 0x456bc1
mov eax, dword [esp + 0x20]
mov dword [esi + 0x59c], eax
mov edx, dword [edi]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret