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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x28
mov edi, ecx
push 0x30
call fcn.00424fc2
add esp, 4
mov ebp, eax
test ebp, ebp
je 0x42268c
xor esi, esi
lea eax, [ebp + 0x14]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [ebp], 0xffffffff
mov dword [ebp + 0x10], esi
mov dword [ebp + 4], esi
mov dword [ebp + 8], 2
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x28], esi
jmp 0x422690
xor ebp, ebp
xor esi, esi
mov ebx, dword [esp + 0x3c]
mov edx, ebx
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4226ba
mov eax, edx
add edx, ecx
call fcn.00435f40
inc eax
push eax
call fcn.00423acb
add esp, 4
mov edx, eax
mov ecx, ebx
mov dword [ebp + 0xc], eax
test cl, 3
je 0x4226df
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x4226e4
inc edx
test cl, 3
jne 0x4226d0
call fcn.00435f60
mov ecx, dword [edi + 0x74]
add esp, 0xfffffff0
mov dword [ebp], ecx
mov ecx, esp
mov eax, dword [0x4460a0]
test ebx, ebx
mov dword [ebp + 8], 1
mov dword [ecx], eax
je 0x42272d
test ebx, 0xffff0000
jne 0x422714
movzx eax, bx
push eax
call fcn.0041fac0
jmp 0x42272d
push ebx
mov dword [esp + 0x18], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x14]
mov edx, eax
test edx, edx
jne 0x4229ed
mov edx, dword [edi + 0x7c]
mov ecx, edi
mov eax, dword [ebp + 0x2c]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0041fe80
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x34]
test eax, eax
mov ebx, dword [edi + 0x28]
mov dword [ebp + 0x28], 0
je 0x42290a
mov edx, dword [eax]
mov dword [eax + 8], ebp
mov dword [edi + 0x34], edx
mov dword [eax + 4], ebx
mov dword [eax], 0
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x28]
test edx, edx
je 0x422781
mov dword [edx], eax
jmp 0x422784
mov dword [edi + 0x24], eax
mov dword [edi + 0x28], eax
mov ebx, 1
mov eax, dword [ebp + 4]
lea ecx, [esp + 4]
add eax, dword [edi + 0x78]
mov edx, dword [edi + 0x80]
mov dword [esp + 4], 0x1c
mov dword [esp + 8], 3
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], esi
push ebx
push ecx
push ebx
inc dword [edi + 0x74]
mov dword [edi + 0x78], eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetScrollInfo]
mov ebx, dword [ebp]
lea esi, [edi + 0x3c]
mov eax, ebx
xor edx, edx
mov ecx, dword [esi + 8]
div ecx
mov eax, dword [esi]
test eax, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
je 0x422822
mov eax, dword [eax + edx*4]
test eax, eax
je 0x4227fe
cmp ebx, dword [eax + 0xc]
je 0x42281c
mov eax, dword [eax + 8]
test eax, eax
jne 0x4227f2
push ebx
push dword [esp + 0x28]
mov ecx, esi
push ebx
call fcn.0041f780
mov dword [eax + 4], ebp
mov eax, dword [edi + 0x74]
dec eax
add esp, 0x28
pop ebp
pop ebx
pop edi
pop esi
ret 0xc
cmp ebx, dword [eax]
je 0x42280b
jmp 0x4227f7
mov eax, ecx
lea edx, [eax*4]
mov dword [esp], edx
push edx
call fcn.00423acb
add esp, 4
mov dword [edi + 0x3c], eax
test eax, eax
je 0x422900
cmp dword [esp + 0x20], 0x3fffffff
ja 0x4228f6
push dword [esp]
push 0
push eax
call fcn.00435e10
add esp, 0xc
mov edx, dword [esp + 0x20]
mov eax, SysReAllocStringLen
cvtsi2sd xmm0, edx
mov dword [edi + 0x44], edx
shr edx, 0x1f
movss xmm3, dword [edi + 0x50]
movss xmm4, dword [0x439830]
movaps xmm2, xmm4
movaps xmm6, xmm4
addsd xmm0, qword [edx*8 + 0x439750]
cvtsd2ss xmm0, xmm0
mulss xmm3, xmm0
mulss xmm0, dword [edi + 0x4c]
cmpless xmm2, xmm3
cmpless xmm6, xmm0
andps xmm2, xmm4
movaps xmm1, xmm3
movaps xmm5, xmm0
andps xmm6, xmm4
subss xmm3, xmm2
cmpnltss xmm1, xmm4
cmpnltss xmm5, xmm4
subss xmm0, xmm6
cvttss2si edx, xmm3
movd ecx, xmm1
and ecx, eax
add edx, ecx
movd ecx, xmm5
and ecx, eax
cvttss2si eax, xmm0
add eax, ecx
mov dword [edi + 0x54], edx
cmp eax, 0x11
jae 0x4228ee
mov dword [edi + 0x58], 0
jmp 0x4227fe
mov dword [esi + 0x1c], eax
jmp 0x4227fe
push 0x80004005
call fcn.0041fe50
push 0x8007000e
call fcn.0041fe50
mov eax, 0xc
mov ecx, 0xffffffff
mul dword [edi + 0x38]
mov dword [esp], eax
sub eax, ecx
sbb edx, esi
jb 0x422924
or eax, edx
jne 0x422900
mov eax, dword [esp]
neg eax
dec eax
cmp eax, 4
jb 0x422900
mov eax, dword [esp]
add eax, 4
push eax
call fcn.00425aa0
add esp, 4
test eax, eax
je 0x422900
mov edx, dword [edi + 0x30]
mov dword [eax], edx
mov edx, dword [edi + 0x38]
mov dword [edi + 0x30], eax
lea ecx, [edx*8]
lea ecx, [ecx + edx*4]
mov dword [esp + 4], ecx
lea eax, [eax + ecx - 8]
mov ecx, edx
mov dword [esp + 8], eax
dec ecx
mov eax, dword [edi + 0x34]
js 0x422762
cmp edx, 6
jle 0x4229c7
lea ecx, [edi + 0x34]
mov dword [esp], ecx
cmp ecx, dword [esp + 8]
jbe 0x422989
sub ecx, dword [esp + 8]
cmp ecx, 0xfffffffc
jg 0x4229a1
mov ecx, dword [esp + 8]
cmp ecx, dword [esp]
jbe 0x4229c7
mov ecx, dword [esp]
neg ecx
add ecx, dword [esp + 8]
cmp ecx, dword [esp + 4]
jle 0x4229c7
mov dword [esp], edi
mov ecx, esi
mov edi, dword [esp + 8]
mov esi, edx
inc ecx
mov edx, edi
mov dword [edi], eax
mov eax, edi
add edi, 0xfffffff4
cmp ecx, esi
jb 0x4229ac
mov edi, dword [esp]
xor esi, esi
mov dword [edi + 0x34], edx
jmp 0x422762
mov dword [esp], edi
mov ecx, esi
mov edi, dword [esp + 8]
mov esi, edx
inc ecx
mov edx, edi
mov dword [edi], eax
mov eax, edi
add edi, 0xfffffff4
cmp ecx, esi
jb 0x4229d2
mov edi, dword [esp]
xor esi, esi
mov dword [edi + 0x34], edx
jmp 0x422762
lea eax, [edx + 0xd]
push eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
call fcn.00423acb
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add esp, 4
test eax, eax
je 0x42272d
push edx
mov dword [eax], 1
mov byte [eax + edx + 0xc], 0
mov dword [eax + 4], edx
mov dword [eax + 8], edx
add eax, 0xc
mov dword [ecx], eax
lea ecx, [edx + 1]
push ebx
push ecx
push eax
call fcn.00425302
add esp, 0x10
cmp eax, 0x22
ja case.0x422a42.11
mov edx, dword [eax*4 + 0x43a5e0]
jmp edx
push 0x80070057
call fcn.0041fe50
push 0x8007000e
call fcn.0041fe50
cmp eax, 0x50
je 0x42272d
push 0x80004005
call fcn.0041fe50
nop
lea esi, [esi]
push esi
mov esi, ecx
mov dword [esi], vtable.std::logic_error.0
cmp dword [esi + 0x24], 0x10
jae 0x422a97
mov ecx, esi
xor eax, eax
mov dword [esi + 0x24], 0xf
mov dword [esi + 0x20], eax
mov byte [esi + 0x10], al
call fcn.00425272
pop esi
ret
push dword [esi + 0x10]
call fcn.00424e70
add esp, 4
jmp 0x422a7f