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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1dc
mov esi, eax
mov ebx, edx
mov dword [esp + 0x34], ecx
mov eax, dword [edx + 0x90]
test eax, eax
je 0x451b81
test byte [edx + 0xe5], 4
jne 0x45200c
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x44], eax
cmp dword [ebx + 0x14], 1
je 0x451fdc
fldz
fst qword [esp + 0x50]
fstp qword [esp + 0x48]
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], 1
xor ebp, ebp
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x30], eax
jne 0x451d6b
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x78]
mov dword [esp + 0x18], ecx
mov eax, dword [ebx]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xc], ecx
mov eax, dword [ebx + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00481570
test eax, eax
jne 0x451d58
mov eax, dword [ebx + 0x8c]
test eax, eax
jne 0x451d97
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x451da0
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004769d4
mov eax, dword [ebx + 0x74]
test eax, eax
jle 0x451fc8
sar eax, 1
cmp dword [ebx + 0x68], eax
jle 0x451c4d
mov dword [ebx + 0x68], eax
cmp dword [ebx + 0x14], 1
jne 0x452238
fld qword [ebx + 0x120]
fld qword [ebx + 0x128]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x451fa4
mov edx, dword [ebx + 0x13c]
test edx, edx
je 0x451e30
cmp edx, dword [esp + 0x38]
je 0x451e30
xor eax, eax
mov ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [edx], 0x25
je 0x451da8
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x606901
mov dword [esp + 8], edx
mov dword [esp + 4], str.bad_spinbox_format_specifier__
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0x120]
cmp dword [esp + 0x2c], 2
jne 0x451d58
mov edi, 2
mov eax, dword [ebx + 0x90]
test eax, eax
je 0x451d10
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0x2c4]
test eax, eax
je 0x4520f0
mov edx, eax
mov eax, ebx
call fcn.00451824
cmp dword [ebx + 0x14], 1
jne 0x451d24
jmp 0x45208c
fstp st(0)
fstp st(0)
fstp st(0)
lea esi, [esi]
mov eax, dword [ebx + 0x90]
test eax, eax
je 0x451d3b
test byte [ebx + 0xe5], 4
je 0x452044
mov dword [esp], ebx
call fcn.0044fba0
test edi, edi
jne 0x451f70
xor eax, eax
add esp, 0x1dc
pop ebx
pop esi
pop edi
pop ebp
ret
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x30], eax
je 0x451bcd
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0x2a0]
mov ebp, eax
inc dword [eax]
lea eax, [esp + 0x78]
mov dword [esp], eax
call fcn.004813a0
mov eax, dword [ebx + 0x8c]
test eax, eax
je 0x451c1f
cmp eax, 2
je 0x451f60
mov eax, dword [ebx + 0x34]
jmp 0x451c2a
cmp byte [edx + ecx - 1], 0x66
jne 0x451ca1
lea ecx, [esp + 0x6c]
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x64]
mov dword [esp + 0xc], eax
lea edi, [esp + 0x60]
mov dword [esp + 8], edi
mov dword [esp + 4], str.___d._d__f_
mov dword [esp], edx
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_sscanf
cmp eax, 3
mov edx, dword [esp + 0x28]
jne 0x452358
mov eax, dword [esp + 0x64]
test eax, eax
js 0x452358
add eax, dword [esp + 0x60]
inc eax
cmp eax, 0x1a
ja 0x451e07
mov eax, 0x1b
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x138]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x1c]
mov dword [ebx + 0x138], eax
fld1
fsubr qword [ebx + 0x120]
fstp qword [esp + 0x48]
nop
mov eax, dword [ebx + 0x150]
cmp eax, dword [esp + 0x40]
je 0x452238
mov edx, dword [ebx + 0x154]
test edx, edx
je 0x451e57
mov ecx, dword [edx]
dec ecx
mov dword [edx], ecx
test ecx, ecx
jle 0x4521dc
mov dword [ebx + 0x154], 0
test eax, eax
je 0x452238
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0xe8]
mov edi, eax
lea eax, [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0xc4]
test eax, eax
jne 0x45207c
mov dword [ebx + 0x154], edi
inc dword [edi]
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x15c], eax
mov dword [ebx + 0x158], 0
inc dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
test byte [ebx + 0xe4], 8
jne 0x4521f8
mov edx, dword [ebx + 0x48]
test edx, edx
je 0x451f18
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x451f18
cmp dword [ebx + 0x20], 0xffffffff
je 0x451f18
test byte [ebx + 0xe4], 0x20
jne 0x451f18
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x4517d8
mov dword [esp + 4], 1
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.0042b2b4
or dword [ebx + 0xe4], 0x20
nop
mov eax, dword [ebx + 0x40]
add eax, dword [ebx + 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.0047f4b0
mov eax, dword [ebx + 0x60]
test eax, eax
jle 0x452228
add eax, dword [ebx + 0x40]
inc eax
mov dword [ebx + 0xb4], eax
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x452490
lea ecx, [esp + 0x78]
mov dword [esp], ecx
call fcn.00481830
jmp 0x451cdb
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x451c2a
jmp 0x451da0
mov dword [esp + 4], ebp
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0x3b4]
mov eax, dword [ebp]
dec eax
mov dword [ebp], eax
test eax, eax
jle 0x452100
mov eax, 1
add esp, 0x1dc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 1
mov dword [esp + 4], str._to_value_must_be_greater_than__from_value
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0x3a8]
jmp 0x451ccb
mov dword [ebx + 0x74], 2
mov eax, 1
jmp 0x451c45
mov ecx, dword [ebx + 0x150]
mov dword [esp + 0x40], ecx
mov eax, dword [ebx + 0x13c]
mov dword [esp + 0x38], eax
fld qword [ebx + 0x120]
fstp qword [esp + 0x48]
fld qword [ebx + 0x128]
fstp qword [esp + 0x50]
jmp 0x451bac
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0x451a78
mov dword [esp + 8], 0x61
mov dword [esp + 4], eax
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0x404]
and dword [ebx + 0xe4], 0xfffffbff
jmp 0x451b81
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x451a78
mov dword [esp + 8], 0x61
mov dword [esp + 4], eax
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0x3e4]
or dword [ebx + 0xe4], 0x400
jmp 0x451d3b
mov dword [esp + 0x3c], 0xffffffff
jmp 0x451ccb
mov eax, dword [ebx + 0x13c]
test eax, eax
je 0x452244
mov dword [ebx + 0x140], eax
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x452118
lea eax, [esp + 0x68]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x154]
mov dword [esp + 4], eax
mov dword [esp], esi
mov eax, dword [0x68bb7c]
call dword [eax + 0xc0]
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x558]
mov edx, eax
mov eax, ebx
call fcn.004519f4
jmp 0x451d24
xor edx, edx
mov eax, ebx
call fcn.004519f4
jmp 0x451d10
mov dword [esp], ebp
mov eax, dword [0x68bb7c]
call dword [eax + pe_nt_image_headers32]
mov eax, 1
jmp 0x451d4d
mov eax, dword [ebx + 0x150]
test eax, eax
jne 0x451d24
fld qword [ebx + 0x120]
fld qword [ebx + 0x128]
fld st(1)
fsub st(1)
fabs
fld qword [0x608240]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
je 0x451d1b
fld qword [esp + 0x48]
fsubp st(3)
fxch st(2)
fabs
fxch st(2)
fucom st(2)
fnstsw ax
fstp st(2)
test ah, 0x45
jne 0x45217b
fsub qword [esp + 0x50]
fabs
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x451d24
jmp 0x45217f
fstp st(0)
fstp st(0)
lea eax, [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x606abe
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_sscanf
test eax, eax
jne 0x452456
fld qword [ebx + 0x120]
fst qword [esp + 0x70]
fstp qword [esp + 8]
mov eax, dword [ebx + 0x140]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x138]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov edx, dword [ebx + 0x138]
mov eax, ebx
call fcn.004519f4
jmp 0x451d24
mov dword [esp], edx
mov eax, dword [0x68bb7c]
call dword [eax + pe_nt_image_headers32]
mov eax, dword [ebx + 0x150]
jmp 0x451e57
mov ecx, dword [ebx + 0xe8]
mov dword [ebx + 0xe8], 5
mov edx, 1
mov eax, ebx
mov dword [esp + 0x28], ecx
call fcn.0045095c
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0xe8], ecx
jmp 0x451ed4
mov dword [ebx + 0x60], 0
xor eax, eax
jmp 0x451f37
mov edi, dword [esp + 0x30]
jmp 0x451ec7
fld qword [ebx + 0x120]
fabs
fld qword [ebx + 0x128]
fabs
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x452264
fstp st(0)
jmp 0x452266
fstp st(1)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
and ah, 0x45
cmp ah, 0x40
jne 0x45227c
fstp st(0)
fld1
fstp qword [esp]
call sub.msvcrt.dll_log10
fstp qword [esp]
call sub.msvcrt.dll_floor
fnstcw word [esp + 0x5e]
mov ax, word [esp + 0x5e]
mov ah, 0xc
mov word [esp + 0x5c], ax
fldcw word [esp + 0x5c]
fistp dword [esp + 0x58]
fldcw word [esp + 0x5e]
mov edx, dword [esp + 0x58]
fld qword [ebx + 0x130]
fld st(0)
fabs
fld qword [0x608240]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x4523fa
fstp st(0)
xor eax, eax
mov ecx, edx
sub ecx, eax
mov eax, ecx
lea ecx, [ecx + 1]
test ecx, ecx
jle 0x452437
cmp ecx, 1
je 0x452499
add eax, 6
mov dword [esp + 0x30], eax
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x2c], eax
js 0x452449
mov eax, dword [esp + 0x2c]
test edx, edx
js 0x452309
add eax, edx
cmp dword [esp + 0x2c], 1
sbb eax, 0xffffffff
cmp edx, 0x80000000
sbb eax, 0xffffffff
cmp eax, dword [esp + 0x30]
jg 0x4523e8
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x606ab0
lea edx, [ebx + 0x144]
mov dword [esp], edx
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_sprintf
mov edx, dword [esp + 0x28]
mov dword [ebx + 0x140], edx
jmp 0x4520a0
lea ecx, [esp + 0x6c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.__._d__f_
mov dword [esp], edx
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_sscanf
cmp eax, 2
mov edx, dword [esp + 0x28]
je 0x4523d8
lea eax, [esp + 0x6c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], str.___d__f_
mov dword [esp], edx
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_sscanf
cmp eax, 2
mov edx, dword [esp + 0x28]
je 0x4523d8
lea ecx, [esp + 0x6c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.___d.__f_
mov dword [esp], edx
call sub.msvcrt.dll_sscanf
cmp eax, 2
je 0x4523d8
mov edx, dword [ebx + 0x13c]
jmp 0x451ca1
mov eax, dword [esp + 0x60]
test eax, eax
js 0x4523cb
inc eax
jmp 0x451dfd
dec ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x606ab7
jmp 0x452334
fstp qword [esp]
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_log10
fstp qword [esp]
call sub.msvcrt.dll_floor
fnstcw word [esp + 0x5e]
mov ax, word [esp + 0x5e]
mov ah, 0xc
mov word [esp + 0x5c], ax
fldcw word [esp + 0x5c]
fistp dword [esp + 0x58]
fldcw word [esp + 0x5e]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x28]
jmp 0x4522cf
mov ecx, 1
mov dword [esp + 0x30], 5
jmp 0x4522f0
mov dword [esp + 0x2c], 0
jmp 0x4522ff
fld qword [ebx + 0x128]
fld qword [esp + 0x70]
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x452481
fstp st(1)
fld qword [ebx + 0x120]
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x452485
fstp st(0)
jmp 0x4521ac
fstp st(0)
jmp 0x452487
fstp st(1)
fst qword [esp + 0x70]
jmp 0x4521ac
mov edi, dword [esp + 0x30]
jmp 0x451cdb
add eax, 5
mov dword [esp + 0x30], eax
jmp 0x4522f0