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

Disassembly:
sub esp, 0x54c
mov eax, dword [0x4adadc]
xor eax, esp
mov dword [esp + 0x548], eax
mov eax, dword [esp + 0x550]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x554]
push ebx
mov ebx, dword [esp + 0x560]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x564]
push ebp
push esi
mov dword [esp + 0x80], eax
mov ebp, dword [eax]
mov eax, dword [ebx + 4]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x1c], ebp
push edi
mov edi, dword [esp + 0x568]
mov dword [esp + 0x24], edi
test eax, eax
je 0x451d43
cmp byte [eax], 0
je 0x451d43
push 0
push 0x20
push 1
call fcn.0040dbd9
mov esi, eax
xor eax, eax
push 0x10
push eax
lea ecx, [esi + 0xc]
mov dword [esi], eax
push ecx
mov dword [esi + 4], ebp
mov dword [esi + 8], 1
mov dword [esi + 0x1c], eax
call fcn.00467540
push esi
push dword [esp + 0x58]
call fcn.00451134
push ebp
push dword [ebx + 8]
push edi
call fcn.0044f16c
add esp, 0x2c
inc ebp
mov dword [esp + 0x20], ebp
cmp dword [ebx + 4], 0
jne 0x451d9a
cmp dword [ebx + 8], 0
je 0x451d9a
push 0
push 0x20
push 1
call fcn.0040dbd9
mov esi, eax
and dword [esi], 0
mov dword [esi + 4], ebp
mov dword [esi + 8], 1
push dword [ebx + 8]
call fcn.0044dc7d
push 0x10
mov dword [esi + 0x1c], eax
lea eax, [esi + 0xc]
push 0
push eax
call fcn.00467540
push esi
push dword [esp + 0x5c]
call fcn.00451134
push ebp
push edi
call fcn.00450571
add esp, 0x2c
inc ebp
mov dword [esp + 0x20], ebp
mov esi, edi
xor edx, edx
push 9
pop ecx
lea edi, [esp + 0xc8]
inc edx
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov dword [esp + 0x10], edx
xor edi, edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x38], edi
cmp dword [ebx + 0x10], ecx
jbe 0x4525d1
mov eax, dword [ebx + 0x18]
mov ebx, dword [eax + ecx*4]
cmp dword [ebx], 6
jne 0x451f07
xor esi, esi
xor ecx, ecx
inc esi
cmp dword [ebx + 0x1c], esi
sete cl
xor eax, eax
cmp edx, esi
sete al
cmp ecx, eax
jne 0x451e04
push 0x573
push str...windowswinctrls.c
push str._ctrl__columns.ncols__1____ncols__1_
call fcn.0046a02e
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp edx, esi
jne 0x451ec5
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x10], edx
cmp edx, 0x10
jbe 0x451e33
push 0x57c
push str...windowswinctrls.c
push str.ncols___lenof_columns_
call fcn.0046a02e
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp edx, esi
jle 0x451e61
lea ecx, [edx - 1]
lea eax, [esp + 0xec]
mov dword [esp + 0x18], ecx
mov edx, ecx
push 9
mov edi, eax
lea esi, [esp + 0xcc]
pop ecx
add eax, 0x24
rep movsd dword es:[edi], dword [esi]
sub edx, 1
jne 0x451e47
mov edx, dword [esp + 0x10]
xor ecx, ecx
test edx, edx
jle 0x4525b4
mov ebp, dword [ebx + 0x20]
lea eax, [esp + 0xd8]
mov dword [esp + 0x18], edx
mov ebx, eax
mov esi, dword [ebx]
mov edi, dword [ebp]
add esi, 3
mov eax, esi
lea ebp, [ebp + 4]
imul eax, ecx
add edi, ecx
push 0x64
pop ecx
imul esi, edi
push 0x64
cdq
idiv ecx
mov ecx, eax
mov eax, esi
cdq
pop esi
idiv esi
add ecx, dword [ebx + 4]
add eax, dword [ebx + 4]
sub eax, ecx
mov dword [ebx + 4], ecx
sub eax, 3
mov ecx, edi
sub dword [esp + 0x18], 1
mov dword [ebx], eax
lea ebx, [ebx + 0x24]
jne 0x451e7b
mov ebp, dword [esp + 0x20]
jmp 0x4525b0
mov eax, dword [esp + 0xd4]
cmp edx, esi
jle 0x451ee5
lea ecx, [esp + 0xf8]
dec edx
cmp eax, dword [ecx]
cmovl eax, dword [ecx]
lea ecx, [ecx + 0x24]
sub edx, 1
jne 0x451ed8
mov edx, esi
lea edi, [esp + 0xc8]
mov esi, dword [esp + 0x24]
push 9
pop ecx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x10], edx
mov dword [esp + 0xd4], eax
jmp 0x4525b4
cmp dword [ebx], 9
jne 0x451f81
cmp byte [ebx + 8], 0
je 0x451f29
push 0x59d
push str...windowswinctrls.c
push str._ctrl__generic.tabdelay
call fcn.0046a02e
add esp, 0xc
mov ebx, dword [ebx + 0x1c]
xor esi, esi
test edi, edi
jle 0x451f44
cmp dword [esp + esi*4 + 0x88], ebx
je 0x451f40
inc esi
cmp esi, edi
jl 0x451f32
cmp esi, edi
jl 0x451f5b
push 0x5a3
push str...windowswinctrls.c
push str.i___ntabdelays
call fcn.0046a02e
add esp, 0xc
or dword [esp + 0x18], 0xffffffff
lea edi, [esp + 0x4c]
imul eax, esi, 0x24
lea esi, [esp + 0x308]
push 9
pop ecx
add esi, eax
rep movsd dword es:[edi], dword [esi]
or esi, 0xffffffff
mov dword [esp + 0x30], esi
jmp 0x45204b
mov eax, dword [ebx + 0xc]
lea esi, [esp + 0xc8]
movzx edx, ax
lea edi, [esp + 0x4c]
sar eax, 0x10
movzx eax, ax
inc eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], eax
imul eax, edx, 0x24
add edx, dword [esp + 0x18]
push 9
pop ecx
add esi, eax
mov dword [esp + 0x2c], eax
imul eax, edx, 0x24
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + eax + 0xb8]
add ecx, dword [esp + eax + 0xb4]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
sub ecx, dword [esp + eax + 0xdc]
mov dword [esp + 0x5c], ecx
cmp esi, edx
jae 0x451ffb
lea ecx, [esp + 0xd4]
add ecx, eax
mov eax, dword [esp + 0x58]
sub edx, esi
cmp eax, dword [ecx]
cmovl eax, dword [ecx]
lea ecx, [ecx + 0x24]
sub edx, 1
jne 0x451fea
mov dword [esp + 0x58], eax
cmp byte [ebx + 8], 0
je 0x45204b
mov edx, dword [esp + 0x38]
cmp edx, 0x10
jb 0x452025
push 0x5c2
push str...windowswinctrls.c
push str.ntabdelays___lenof_tabdelays_
call fcn.0046a02e
mov edx, dword [esp + 0x44]
add esp, 0xc
imul eax, edx, 0x24
lea edi, [esp + 0x308]
push 9
pop ecx
lea esi, [esp + 0x4c]
mov dword [esp + edx*4 + 0x88], ebx
add edi, eax
inc edx
rep movsd dword es:[edi], dword [esi]
and dword [esp + 0x4c], 0
mov dword [esp + 0x38], edx
and dword [esp + 0x34], 0
lea eax, [esp + 0x548]
push 0x10
push 0
push eax
call fcn.00467540
mov eax, dword [ebx]
add esp, 0xc
mov edi, ebp
mov dword [esp + 0x2c], edi
cmp eax, 8
ja case.0x452075.6
jmp dword [eax*4 + 0x452645]
xor eax, eax
inc eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x28]
push dword [ebx + 4]
push dword [eax]
lea eax, [esp + 0x58]
push eax
call fcn.00450f80
mov edi, eax
push 0
push edi
call fcn.00450aa4
push ebp
push dword [esp + 0x8c]
mov esi, eax
lea eax, [esp + 0x6c]
push esi
push eax
call fcn.00450f24
push esi
call fcn.0040dab8
push edi
call fcn.0040dab8
add esp, 0x30
mov edi, dword [esp + 0x1c]
jmp 0x452515
push 2
pop eax
mov edi, eax
movzx eax, byte [ebx + 0x1c]
push eax
push dword [ebx + 4]
call fcn.00450aa4
pop ecx
pop ecx
mov cl, byte [ebx + 0x1c]
mov esi, eax
push 0x64
pop eax
mov byte [esp + 0x548], cl
cmp dword [ebx + 0x20], eax
lea eax, [ebp + 1]
jne 0x452126
cmp byte [ebx + 0x25], 0
push eax
push ebp
push esi
je 0x452115
lea eax, [esp + 0x58]
push eax
call fcn.0044f279
add esp, 0x10
jmp 0x452154
movzx eax, byte [ebx + 0x24]
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0044ffca
jmp 0x452151
cmp byte [ebx + 0x25], 0
push dword [ebx + 0x20]
push eax
push ebp
lea eax, [esp + 0x58]
push esi
push eax
je 0x45213e
call fcn.00450bda
jmp 0x452151
cmp byte [ebx + 0x24], 0
mov ecx, 0x450f06
mov eax, 0x450e18
cmovne eax, ecx
call eax
add esp, 0x14
push esi
call fcn.0040dab8
pop ecx
jmp 0x452515
movzx eax, byte [ebx + 0x1c]
mov edi, dword [ebx + 0x24]
push eax
push dword [ebx + 4]
inc edi
mov dword [esp + 0x24], edi
call fcn.00450aa4
mov cl, byte [ebx + 0x1c]
push 0
mov byte [esp + 0x554], cl
push 8
push dword [ebx + 0x24]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x54], 1
call fcn.0040dbd9
xor esi, esi
add esp, 0x14
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp dword [ebx + 0x24], esi
jle 0x452216
mov edi, dword [esp + 0x40]
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4521b8
movsx eax, byte [esi + eax]
jmp 0x4521ba
xor eax, eax
push eax
mov eax, dword [ebx + 0x28]
push dword [eax + esi*4]
call fcn.00450aa4
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + esi*8], eax
lea eax, [ebp + 1]
add eax, esi
mov dword [ecx + esi*8 + 4], eax
cmp dword [ebx + 0x2c], 0
je 0x45220c
cmp edi, 0x10
jl 0x4521fa
push 0x610
push str...windowswinctrls.c
push str.nshortcuts___MAX_SHORTCUTS_PER_CTRL
call fcn.0046a02e
add esp, 0xc
mov eax, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x14]
mov al, byte [esi + eax]
mov byte [esp + edi + 0x548], al
inc edi
inc esi
cmp esi, dword [ebx + 0x24]
jl 0x4521ab
mov edi, dword [esp + 0x1c]
push dword [ebx + 0x24]
lea eax, [esp + 0x50]
push ecx
push dword [ebx + 0x20]
push ebp
push dword [esp + 0x38]
push eax
call fcn.0045093f
xor esi, esi
add esp, 0x18
cmp dword [ebx + 0x24], esi
jle 0x45224e
mov ebp, dword [esp + 0x14]
push dword [ebp + esi*8]
call fcn.0040dab8
inc esi
pop ecx
cmp esi, dword [ebx + 0x24]
jl 0x45223a
mov ebp, dword [esp + 0x20]
push dword [esp + 0x14]
call fcn.0040dab8
push dword [esp + 0x2c]
call fcn.0040dab8
pop ecx
jmp 0x45215a
movzx eax, byte [ebx + 0x1c]
xor edi, edi
push eax
push dword [ebx + 4]
inc edi
call fcn.00450aa4
mov cl, byte [ebx + 0x1c]
mov esi, eax
push ebp
lea eax, [esp + 0x58]
mov byte [esp + 0x554], cl
push esi
push eax
call fcn.0044f221
push esi
call fcn.0040dab8
add esp, 0x18
jmp 0x452515
movzx eax, byte [ebx + 0x1c]
push eax
push dword [ebx + 4]
call fcn.00450aa4
mov cl, byte [ebx + 0x1c]
mov esi, eax
push 2
pop eax
mov byte [esp + 0x550], cl
cmp byte [ebx + 0x1e], 0
movzx ecx, byte [ebx + 0x1d]
cmovne edi, eax
lea eax, [esp + 0x54]
push ecx
mov dword [esp + 0x38], edi
xor edi, edi
push dword [esp + 0x38]
inc edi
push esi
push eax
call fcn.0044f1a3
push esi
call fcn.0040dab8
add esp, 0x1c
jmp 0x452515
push 2
pop eax
mov dword [esp + 0x1c], eax
movzx eax, byte [ebx + 0x1c]
push eax
push dword [ebx + 4]
call fcn.00450aa4
pop ecx
pop ecx
mov cl, byte [ebx + 0x1c]
mov edi, eax
mov byte [esp + 0x548], cl
cmp byte [ebx + 0x24], 0
mov dword [esp + 0x78], edi
je 0x452363
push 0
push 0x18
push 1
call fcn.0040dbd9
push 4
mov edx, eax
lea ecx, [ebp + 3]
pop eax
push ecx
lea ecx, [ebp + 2]
mov dword [esp + 0x2c], eax
push ecx
lea esi, [ebp + 1]
mov dword [esp + 0x48], edx
push esi
push ebp
push edi
push dword [ebx + 0x20]
lea eax, [esp + 0x70]
mov dword [esp + 0x38], esi
push eax
push edx
call fcn.0045073e
add esp, 0x2c
mov byte [esp + 0x549], 0x75
push 0x64
pop eax
mov byte [esp + 0x54a], al
jmp 0x4523b9
cmp dword [ebx + 0x20], 0
lea esi, [ebp + 1]
mov dword [esp + 0x14], esi
jne 0x45239b
push 0x64
pop eax
cmp dword [ebx + 0x2c], eax
lea eax, [esp + 0x4c]
jne 0x45238a
push esi
push ebp
push edi
push eax
call fcn.00450d70
add esp, 0x10
jmp 0x4523b9
push dword [ebx + 0x2c]
push esi
push ebp
push edi
push eax
call fcn.00450ca5
add esp, 0x14
jmp 0x4523b9
cmp dword [ebx + 0x28], 0
setne al
movzx eax, al
push eax
push dword [ebx + 0x20]
lea eax, [esp + 0x54]
push esi
push ebp
push edi
push eax
call fcn.004504a7
add esp, 0x18
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x45245f
mov ecx, dword [esp + 0x24]
push 0
push 4
mov ecx, dword [ecx + 0x10]
imul ecx, dword [ebx + 0x2c]
dec eax
push eax
mov dword [esp + 0x80], ecx
call fcn.0040dbd9
and dword [esp + 0x50], 0
add esp, 0xc
and dword [esp + 0x40], 0
mov ecx, dword [ebx + 0x30]
dec ecx
mov dword [esp + 0x28], eax
test ecx, ecx
jle 0x45243c
mov ebp, dword [esp + 0x40]
mov ecx, eax
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x44]
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x44], 0x2710
add esi, dword [eax + ebp*4]
mov eax, esi
imul eax, edi
cdq
idiv dword [esp + 0x44]
mov dword [ecx + ebp*4], eax
inc ebp
mov eax, dword [ebx + 0x30]
dec eax
cmp ebp, eax
jl 0x452408
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x28]
push eax
mov eax, dword [ebx + 0x30]
dec eax
push eax
mov eax, dword [esp + 0x2c]
push 0x192
push esi
push dword [eax]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0040dab8
pop ecx
push edi
call fcn.0040dab8
pop ecx
jmp 0x4520c9
movzx eax, byte [ebx + 0x1c]
push 3
pop edi
push eax
push dword [ebx + 4]
call fcn.00450aa4
mov cl, byte [ebx + 0x1c]
mov esi, eax
mov byte [esp + 0x550], cl
lea eax, [esp + 0x54]
lea ecx, [ebp + 2]
push ecx
push str.Browse...
lea ecx, [ebp + 1]
push ecx
push ebp
push esi
push eax
call fcn.00450071
push esi
mov byte [esp + 0x56d], 0x77
call fcn.0040dab8
add esp, 0x24
jmp 0x452515
movzx eax, byte [ebx + 0x1c]
push 3
pop edi
push eax
push dword [ebx + 4]
call fcn.00450aa4
mov cl, byte [ebx + 0x1c]
mov esi, eax
push ebp
push 1
lea eax, [esp + 0x5c]
mov byte [esp + 0x558], cl
push esi
push eax
call fcn.00450f24
lea eax, [ebp + 2]
push eax
push str.Change...
lea eax, [ebp + 1]
push eax
lea eax, [esp + 0x70]
push 0x48579b
push eax
call fcn.00450b1d
xor eax, eax
push eax
push eax
push eax
push 0x48579b
call fcn.0045e001
push esi
mov dword [esp + 0x74], eax
call fcn.0040dab8
add esp, 0x40
cmp dword [esp + 0x4c], 0
je 0x452579
push 0
push 0x20
push 1
call fcn.0040dbd9
mov esi, eax
mov eax, dword [esp + 0x40]
push 0x10
mov dword [esi + 0x1c], eax
lea ecx, [esi + 0xc]
lea eax, [esp + 0x558]
mov dword [esi], ebx
mov ebx, dword [esp + 0x3c]
push eax
push ecx
mov dword [esi + 4], ebx
mov dword [esi + 8], edi
call fcn.004667d0
push esi
push dword [esp + 0x58]
call fcn.00451134
push esi
push dword [esp + 0xa0]
call fcn.0045118f
add esp, 0x28
lea eax, [edi + ebp]
cmp ebx, ebp
cmovne eax, ebp
mov ebp, eax
mov dword [esp + 0x20], ebp
jmp 0x452584
mov eax, dword [esp + 0x34]
push eax
call fcn.0040dab8
pop ecx
mov edx, dword [esp + 0x30]
test edx, edx
js 0x4525b0
mov ecx, dword [esp + 0x18]
add ecx, edx
cmp edx, ecx
jge 0x4525b0
imul eax, edx, 0x24
sub ecx, edx
mov edx, dword [esp + 0x58]
lea eax, [esp + eax + 0xd4]
mov dword [eax], edx
lea eax, [eax + 0x24]
sub ecx, 1
jne 0x4525a6
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x80]
inc ecx
mov edi, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
cmp ecx, dword [ebx + 0x10]
jb 0x451dc4
mov esi, dword [esp + 0x24]
test edx, edx
jle 0x4525f3
mov eax, dword [esi + 0xc]
lea ecx, [esp + 0xd4]
cmp eax, dword [ecx]
cmovl eax, dword [ecx]
lea ecx, [ecx + 0x24]
sub edx, 1
jne 0x4525e3
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [eax], ebp
mov eax, dword [ebx + 4]
test eax, eax
je 0x45260f
cmp byte [eax], 0
je 0x45260f
push esi
call fcn.00450183
pop ecx
mov ecx, dword [esp + 0x558]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004659d6
add esp, 0x54c
ret
push 0x679
push str...windowswinctrls.c
push str.false___bad_control_type_in_winctrl_layout_
call fcn.0046a02e
add esp, 0xc
call fcn.00472946
nop
jl 0x452667
inc ebp
add dl, dl
and byte [ebp], al
pushal
and dword [ebp], eax
and al, byte [ebp]
pushfd
and al, byte [ebp]
call 0x28456b80
inc ebp
add byte [ebx + 0x24], ch
inc ebp
add byte [ebx - 0x74ffbadc], dh
mov eax, dword [esp + 8]
inc ebp
add byte [ebx + 0x53082444], cl
mov eax, dword [esp + 8]
push ebx