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

Disassembly:
sub esp, 0x5b4
push ebp
mov ebp, ecx
push esi
mov esi, dword [ebp + 8]
cmp esi, 0x1f4
jb 0x437344
push 0x44f4f8
push 0x456f78
mov ecx, 0x45ebb8
call fcn.0041e570
pop esi
pop ebp
add esp, 0x5b4
ret 0xc
test esi, esi
push edi
jne 0x437391
mov eax, dword [ebp + 0x36d8]
lea edi, [eax + eax*4]
shl edi, 4
fild dword [edi + 0x461318]
lea edi, [edi + 0x461318]
fmul qword [0x455cc8]
call fcn.004452f4
mov dword [ebp + 0x36f0], eax
fild dword [edi]
fmul qword [0x456f70]
call fcn.004452f4
mov dword [ebp + 0x36f4], eax
mov eax, dword [ebp + 0x36f0]
mov dword [ebp + 0x36f8], eax
imul esi, esi, 0x1c
xor ecx, ecx
lea esi, [esi + ebp + 0xc]
mov edx, esi
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], ecx
mov eax, dword [ebp + 0x36dc]
mov dl, byte [esp + 0x5c4]
mov dword [esi + 0x14], eax
xor eax, eax
cmp dl, 6
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xac], al
mov ecx, 0x44
lea edi, [esp + 0xad]
rep stosd dword es:[edi], eax
mov byte [esp + 0x1c0], al
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], eax
mov byte [esp + 0x2b], al
mov ecx, 0xff
lea edi, [esp + 0x1c1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push ebx
mov ebx, 0x80000000
stosb byte es:[edi], al
mov al, byte [ebp + 0x36d0]
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x50000000
jne 0x43743a
test al, al
jne 0x437446
mov dword [esp + 0x10], 0x50030000
jmp 0x437446
test al, al
je 0x437446
mov dword [esp + 0x10], 0x50020000
movzx eax, dl
mov dword [esp + 0x38], eax
add eax, 0xfffffffc
cmp eax, 6
ja case.0x43745c.6
movzx ecx, byte [eax + 0x438868]
jmp dword [ecx*4 + 0x438860]
or dword [esp + 0x10], 0x10000
mov esi, dword [esp + 0x5cc]
cmp byte [esi], 0
je 0x4377ea
mov edi, dword [esp + 0x14]
nop
movsx edx, byte [esi]
push edx
call fcn.00443ce6
add eax, 0xffffffbd
add esp, 4
cmp eax, 0x16
ja case.0x43756c.7
movzx eax, byte [eax + 0x4388a4]
jmp dword [eax*4 + 0x438870]
push 0xb
push str.CheckedGray
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne 0x4374d9
mov al, byte [esp + 0x5c8]
add esi, 0xa
cmp al, 5
jne case.0x43756c.7
mov dword [esp + 0x34], 2
jmp case.0x43756c.7
push 7
push str.Checked
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne 0x437510
mov al, byte [esp + 0x5c8]
add esi, 6
cmp al, 5
je 0x437503
cmp al, 6
jne case.0x43756c.7
mov dword [esp + 0x34], 1
jmp case.0x43756c.7
push 6
push str.Check3
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne 0x437540
mov al, byte [esp + 0x5c8]
add esi, 5
cmp al, 5
jne case.0x43756c.7
or dword [esp + 0x10], 6
jmp case.0x43756c.7
push 6
push str.center
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne 0x437580
mov eax, dword [esp + 0x38]
add esi, 5
dec eax
cmp eax, 9
ja case.0x43756c.7
movzx ecx, byte [eax + 0x4388c8]
jmp dword [ecx*4 + 0x4388bc]
or dword [esp + 0x10], 0x300
jmp case.0x43756c.7
push 6
push str.choose
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne 0x4375bc
add esi, 5
lea edx, [esi + 1]
push edx
call fcn.00444633
add esp, 4
test eax, eax
mov dword [esp + 0x44], eax
jge case.0x43756c.7
mov dword [esp + 0x44], 0
jmp case.0x43756c.7
push 0x20
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.00401050
lea edx, [esp + 0x64]
push 0x451538
push edx
call fcn.00409fc0
add esp, 0x14
test eax, eax
je 0x4375e5
mov byte [eax], 0
lea eax, [esp + 0x58]
push eax
call fcn.0043ca60
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp eax, 0xffffffff
mov dword [ecx + 0x14], eax
jne 0x43763f
lea eax, [esp + 0x58]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x437605
sub eax, edx
cmp eax, 6
jbe 0x437617
mov byte [esp + 0x5e], cl
push 0x10
lea edx, [esp + 0x5c]
push 0
push edx
call fcn.0044485e
movzx ecx, ah
mov ch, al
shr eax, 0x10
movzx edx, al
mov eax, dword [esp + 0x34]
add esp, 0xc
shl ecx, 8
or ecx, edx
mov dword [eax + 0x14], ecx
lea eax, [esp + 0x58]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x437646
sub eax, edx
add esi, eax
jmp case.0x43756c.7
push 7
push str.default
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne 0x437686
mov al, byte [esp + 0x5c8]
add esi, 6
cmp al, 4
jne case.0x43756c.7
or dword [esp + 0x10], 1
jmp case.0x43756c.7
push 8
push str.disabled
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne case.0x43756c.7
mov eax, dword [esp + 0x10]
add esi, 7
or eax, 0x8000000
mov dword [esp + 0x10], eax
jmp case.0x43756c.7
push 4
push str.left
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne case.0x43756c.7
mov al, byte [esp + 0x5c8]
add esi, 3
cmp al, 3
jb case.0x43756c.7
cmp al, 6
ja case.0x43756c.7
or dword [esp + 0x10], 0x100
jmp case.0x43756c.7
push 5
push str.NoTab
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne case.0x43756c.7
mov eax, dword [esp + 0x10]
add esi, 4
and eax, 0xfffeffff
mov dword [esp + 0x10], eax
jmp case.0x43756c.7
push 8
push str.password
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne case.0x43756c.7
mov al, byte [esi + 8]
add esi, 7
test al, al
je 0x43774b
mov cl, byte [esi + 1]
inc esi
mov byte [esp + 0x2f], cl
jmp 0x437750
mov byte [esp + 0x2f], 0x2a
cmp byte [esp + 0x5c8], 0xa
jne case.0x43756c.7
or dword [esp + 0x10], 0x20
jmp case.0x43756c.7
mov al, byte [esi + 1]
test al, al
lea edi, [esi + 1]
je 0x4377cf
push 0x451538
push edi
call fcn.00409fc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x437790
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x437784
sub eax, edx
lea esi, [eax + edi]
mov eax, esi
sub eax, edi
je 0x4377ce
mov cl, byte [esp + 0x5c8]
cmp cl, 0xa
je 0x437b54
cmp cl, 3
je 0x437b54
cmp eax, 0x400
jb 0x4377bb
mov eax, 0x3ff
inc eax
push eax
push edi
lea edx, [esp + 0x1cc]
push edx
call fcn.00401050
add esp, 0xc
dec esi
mov edi, dword [esp + 0x14]
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x437480
mov dl, byte [esp + 0x5c8]
mov dword [esp + 0x24], ebx
mov al, byte [esp + 0xb0]
test al, al
je 0x437bba
push 0
push 0
lea eax, [esp + 0xb8]
push eax
mov ecx, 0x45ebb8
call fcn.00415ab0
test eax, eax
mov edi, dword [esp + 0x28]
mov dword [edi + 8], eax
je case.default.0x43817c
mov edx, dword [ebp + 8]
xor ecx, ecx
test edx, edx
jbe 0x437843
lea edx, [ebp + 0x14]
lea ebx, [ebx]
cmp dword [edx], eax
je 0x437b96
mov esi, dword [ebp + 8]
inc ecx
add edx, 0x1c
cmp ecx, esi
jb 0x437830
mov dl, byte [esp + 0x5c8]
jmp 0x437bbe
mov al, byte [esi + 1]
test al, al
lea edi, [esi + 1]
je 0x4377cf
push 0x451538
push edi
call fcn.00409fc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x437882
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x437876
sub eax, edx
lea esi, [eax + edi]
mov eax, esi
sub eax, edi
je 0x4377ce
mov cl, byte [esp + 0x5c8]
test cl, cl
jbe 0x4378a0
cmp cl, 4
jbe 0x437b75
cmp eax, 0x111
jb 0x4378ac
mov eax, 0x110
inc eax
push eax
push edi
lea eax, [esp + 0xb8]
push eax
jmp 0x4377c6
lea ecx, [esi + 1]
push ecx
call fcn.00444633
add esp, 4
mov dword [esp + 0x30], eax
jmp case.0x43756c.7
push 6
push str.hidden
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne 0x4378fa
mov eax, dword [esp + 0x10]
add esi, 5
and eax, 0xefffffff
mov dword [esp + 0x10], eax
jmp case.0x43756c.7
lea edx, [esi + 1]
push edx
call fcn.00444633
add esp, 4
mov dword [esp + 0x18], eax
jmp case.0x43756c.7
push 5
push str.right
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne 0x43796d
mov eax, dword [esp + 0x38]
add esi, 4
dec eax
cmp eax, 9
ja case.0x437937.7
movzx eax, byte [eax + 0x4388e0]
jmp dword [eax*4 + 0x4388d4]
mov eax, dword [esp + 0x10]
or eax, 2
jmp 0x437998
mov edx, dword [esp + 0x10]
mov al, byte [esp + 0x5c8]
or edx, 0x200
cmp al, 5
mov dword [esp + 0x10], edx
je 0x437964
cmp al, 6
jne case.0x437937.7
mov eax, dword [esp + 0x10]
or eax, 0x20
jmp 0x437998
push 8
push str.ReadOnly
push esi
call fcn.0044e5ed
add esp, 0xc
test eax, eax
jne case.0x437937.7
mov al, byte [esp + 0x5c8]
add esi, 7
cmp al, 0xa
jne case.0x437937.7
mov eax, dword [esp + 0x10]
or eax, 0x800
mov dword [esp + 0x10], eax
lea ecx, [esi + 1]
push ecx
call fcn.00444c99
fstp dword [esp + 0x24]
add esp, 4
jmp case.0x43756c.7
mov al, byte [esi + 1]
test al, al
je case.0x43756c.7
mov al, byte [esi + 1]
inc esi
cmp al, 0x2b
jne 0x4379fd
lea edx, [esi + 1]
push edx
call fcn.00444633
mov edx, dword [ebp + 0x3700]
mov ecx, dword [ebp + 0x36f8]
mov ebx, eax
add ebx, edx
add esp, 4
add ebx, ecx
cmp edi, 0x80000000
jne case.0x43756c.7
mov edi, dword [ebp + 0x36fc]
mov dword [esp + 0x14], edi
jmp case.0x43756c.7
movsx eax, al
push eax
call fcn.00443ce6
add esp, 4
cmp eax, 0x4d
jne 0x437a45
lea ecx, [esi + 1]
push ecx
call fcn.00444633
mov ecx, dword [ebp + 0x36f0]
mov ebx, eax
add esp, 4
add ebx, ecx
cmp edi, 0x80000000
jne case.0x43756c.7
mov edi, dword [ebp + 0x370c]
add edi, dword [ebp + 0x36f4]
mov dword [esp + 0x14], edi
jmp case.0x43756c.7
movsx edx, byte [esi]
push edx
call fcn.00443ce6
add esp, 4
cmp eax, 0x50
jne 0x437a87
lea eax, [esi + 1]
push eax
call fcn.00444633
mov ecx, dword [ebp + 0x36f8]
mov ebx, eax
add esp, 4
add ebx, ecx
cmp edi, 0x80000000
jne case.0x43756c.7
mov edi, dword [ebp + 0x36fc]
mov dword [esp + 0x14], edi
jmp case.0x43756c.7
push esi
call fcn.00444633
add esp, 4
mov ebx, eax
jmp 0x437a24
mov al, byte [esi + 1]
test al, al
je case.0x43756c.7
mov al, byte [esi + 1]
inc esi
cmp al, 0x2b
jne 0x437abf
lea ecx, [esi + 1]
push ecx
call fcn.00444633
mov edx, dword [ebp + 0x3704]
mov edi, eax
add esp, 4
add edi, edx
jmp 0x437b07
movsx edx, al
push edx
call fcn.00443ce6
add esp, 4
cmp eax, 0x4d
jne 0x437ae8
lea eax, [esi + 1]
push eax
call fcn.00444633
mov ecx, dword [ebp + 0x36f4]
mov edi, eax
add esp, 4
add edi, ecx
jmp 0x437b33
movsx ecx, byte [esi]
push ecx
call fcn.00443ce6
add esp, 4
cmp eax, 0x50
jne 0x437b28
lea edx, [esi + 1]
push edx
call fcn.00444633
add esp, 4
mov edi, eax
add edi, dword [ebp + 0x36fc]
cmp ebx, 0x80000000
mov dword [esp + 0x14], edi
jne case.0x43756c.7
mov ebx, dword [ebp + 0x36f8]
jmp case.0x43756c.7
push esi
call fcn.00444633
add esp, 4
mov edi, eax
cmp ebx, 0x80000000
mov dword [esp + 0x14], edi
jne case.0x43756c.7
mov ebx, dword [ebp + 0x3708]
add ebx, dword [ebp + 0x36f0]
jmp case.0x43756c.7
push edi
push str.This_control_type_should_not_have_an_associated_subroutine.__The_current_thread_will_exit.
mov ecx, 0x45ebb8
mov dword [esp + 0x2c], ebx
call fcn.0041e570
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x5b4
ret 0xc
push edi
push str.This_control_type_should_not_have_an_associated_variable.__The_current_thread_will_exit.
mov ecx, 0x45ebb8
mov dword [esp + 0x2c], ebx
call fcn.0041e570
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x5b4
ret 0xc
lea ecx, [esp + 0xb0]
push ecx
push str.The_same_variable_cannot_be_used_for_more_than_one_control_per_window.__The_current_thread_will_exit.
mov ecx, 0x45ebb8
call fcn.0041e570
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x5b4
ret 0xc
mov edi, dword [esp + 0x28]
mov al, byte [esp + 0x1c4]
test al, al
mov esi, dword [esp + 0x5d0]
je 0x437c33
lea edx, [esp + 0x1c4]
push edx
mov ecx, 0x45ebb8
call fcn.00410d90
test eax, eax
mov dword [edi + 0xc], eax
jne 0x437cf8
lea eax, [esp + 0x1c4]
push 0x4518dc
push eax
call fcn.0044e5aa
add esp, 8
test eax, eax
jne 0x437c0f
mov byte [edi + 0x11], 1
jmp 0x437cf8
lea ecx, [esp + 0x1c4]
push ecx
push str.This_controls_target_label_does_not_exist.__The_current_thread_will_exit.
mov ecx, 0x45ebb8
call fcn.0041e570
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x5b4
ret 0xc
cmp dl, 4
jne 0x437cff
mov eax, dword [ebp + 4]
test eax, eax
jbe 0x437c59
push 0xa
lea edx, [esp + 0x1c8]
push edx
inc eax
push eax
call fcn.004448ca
add esp, 0xc
jmp 0x437c61
mov byte [esp + 0x1c4], 0
push esi
push str.Button_s
lea eax, [esp + 0x1cc]
push 0x400
push eax
call fcn.0043c2e0
push 1
push 0x44f4f8
lea ecx, [esp + 0x1dc]
push 0x4566cc
push ecx
call fcn.0043c770
push 1
push 0x44f4f8
lea edx, [esp + 0x1ec]
push 0x456280
push edx
call fcn.0043c770
push 1
push 0x44f4f8
lea eax, [esp + 0x1fc]
push 0x456d94
push eax
call fcn.0043c770
add esp, 0x40
push 1
push 0x44f4f8
lea ecx, [esp + 0x1cc]
push 0x456d18
push ecx
call fcn.0043c770
add esp, 0x10
lea edx, [esp + 0x1c4]
push edx
mov ecx, 0x45ebb8
call fcn.00410d90
mov dword [edi + 0xc], eax
mov dl, byte [esp + 0x5c8]
mov edi, 0x80000000
cmp ebx, edi
jne 0x437d4e
cmp dword [esp + 0x14], edi
jne 0x437d4e
mov eax, dword [ebp + 0x36f8]
mov ecx, dword [ebp + 0x3704]
mov ebx, dword [ebp + 0x36f4]
mov dword [esp + 0x24], eax
add ecx, dword [ebp + 0x36fc]
add ecx, ebx
cmp dl, 1
mov dword [esp + 0x14], ecx
jne 0x437d4e
mov eax, dword [ebp + 8]
test eax, eax
je 0x437d67
imul eax, eax, 0x1c
cmp byte [eax + ebp - 0xc], dl
jne 0x437d67
add ecx, 9
mov dword [esp + 0x14], ecx
jmp 0x437d67
cmp dl, 0xa
jne 0x437d67
mov eax, dword [esp + 0x10]
test eax, 0x200000
je 0x437d67
or eax, 0x201004
mov dword [esp + 0x10], eax
cmp dword [esp + 0x18], edi
jne case.0x437d8a.4
fld dword [esp + 0x20]
fcomp dword [0x457c00]
fnstsw ax
test ah, 0x41
jp case.0x437d8a.4
mov eax, dword [esp + 0x38]
add eax, 0xfffffffd
cmp eax, 7
ja case.0x437d8a.4
jmp dword [eax*4 + 0x4388ec]
mov dword [esp + 0x20], 0x40400000
jmp case.0x437d8a.4
mov dword [esp + 0x20], 0x40000000
jmp case.0x437d8a.4
cmp byte [esi], 0
jne case.0x437d8a.4
mov dword [esp + 0x20], 0x3f800000
fld dword [esp + 0x20]
xor esi, esi
fcomp dword [0x457c00]
mov dword [esp + 0x3c], esi
fnstsw ax
test ah, 0x41
jne case.0x437e6b.5
cmp dl, 3
je 0x437ddc
cmp dl, 7
jbe 0x437dea
cmp dl, 9
ja 0x437dea
fld dword [esp + 0x20]
fadd dword [0x456d90]
fstp dword [esp + 0x20]
mov ecx, dword [ebp]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
mov eax, dword [ebp + 0x36d8]
lea edx, [eax + eax*4]
shl edx, 4
mov eax, dword [edx + 0x461324]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x78]
push ecx
push esi
mov dword [esp + 0x44], eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
fld dword [esp + 0x20]
fadd qword [0x451558]
call fcn.004452f4
mov edi, eax
lea edx, [edi - 1]
imul edx, dword [esp + 0x88]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fild dword [esp + 0x78]
fmul dword [esp + 0x20]
faddp st(1)
fadd qword [0x451558]
call fcn.004452f4
mov ecx, eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffffd
cmp eax, 7
mov dword [esp + 0x18], ecx
ja case.0x437e6b.5
jmp dword [eax*4 + 0x43890c]
add ecx, 9
mov dword [esp + 0x18], ecx
jmp case.0x437e6b.5
mov eax, dword [ebp + 0x36d8]
lea eax, [eax + eax*4]
shl eax, 4
mov edx, dword [eax + 0x461318]
lea eax, [ecx + edx + 2]
mov dword [esp + 0x18], eax
jmp case.0x437e6b.5
mov eax, dword [ebp + 0x36d8]
lea edx, [eax + eax*4]
lea eax, [edi - 2]
shl edx, 4
mov edx, dword [edx + 0x461318]
lea ecx, [ecx + eax*8]
add ecx, eax
lea edx, [ecx + edx*2]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
mov eax, 0x80000000
cmp ecx, eax
je 0x437ecf
cmp dword [esp + 0x30], eax
jne 0x438183
mov eax, dword [esp + 0x38]
xor ebx, ebx
dec eax
cmp eax, 9
mov edi, 0x400
ja case.0x437eeb.2
movzx eax, byte [eax + 0x438938]
jmp dword [eax*4 + 0x43892c]
mov ecx, dword [esp + 0x5d0]
cmp byte [ecx], 0
je case.0x437eeb.2
test esi, esi
jne 0x437f30
mov edx, dword [ebp]
push edx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
mov eax, dword [ebp + 0x36d8]
lea eax, [eax + eax*4]
shl eax, 4
mov ecx, dword [eax + 0x461324]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x78]
push edx
push esi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
fld dword [esp + 0x20]
fcomp qword [0x456d88]
mov ebx, dword [esp + 0x8c]
add ebx, 4
fnstsw ax
test ah, 1
je 0x437f77
test dword [esp + 0x10], 0x200000
jne 0x437f77
mov eax, dword [esp + 0x5d0]
push 0xa
push eax
call fcn.00443dd0
add esp, 8
test eax, eax
je 0x437f81
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add ebx, eax
mov edi, 0x2400
test esi, esi
jne 0x437fb4
mov ecx, dword [ebp]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
mov eax, dword [ebp + 0x36d8]
lea edx, [eax + eax*4]
shl edx, 4
mov eax, dword [edx + 0x461324]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x5c8]
cmp al, 5
je 0x437fc3
cmp al, 6
jne 0x437fe2
lea ecx, [esp + 0x78]
push ecx
push esi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
push 0x47
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, dword [esp + 0x8c]
lea ebx, [ebx + eax + 2]
mov eax, dword [esp + 0x30]
cmp eax, 0x80000000
je 0x437ff0
or edi, 0x10
xor ecx, ecx
cmp eax, 0x80000000
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
jne 0x438007
mov dword [esp + 0x50], ecx
jmp 0x43800d
sub eax, ebx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
xor edx, edx
cmp eax, 0x80000000
sete dl
dec edx
and edx, eax
mov eax, dword [esp + 0x5d0]
cmp byte [eax], 0
mov dword [esp + 0x54], edx
jne 0x438033
mov eax, 0x456d80
push edi
lea ecx, [esp + 0x4c]
push ecx
push 0xffffffffffffffff
push eax
push esi
call dword [sym.imp.USER32.dll_DrawTextA]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
sub ecx, edi
cmp edx, 0x80000000
je 0x43805d
cmp eax, edx
jle 0x438094
cmp byte [esp + 0x5c8], 0xa
mov dword [esp + 0x18], eax
jne 0x438070
add eax, 9
jmp 0x438090
cmp byte [esp + 0x5c8], 4
jne 0x438094
mov edx, dword [ebp + 0x36d8]
lea edx, [edx + edx*4]
shl edx, 4
mov edx, dword [edx + 0x461318]
lea eax, [edx + eax + 2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
cmp eax, 0x80000000
je 0x4380a3
cmp ecx, eax
jle case.0x437eeb.2
mov al, byte [esp + 0x5c8]
add ecx, ebx
cmp al, 4
mov dword [esp + 0x30], ecx
jne case.0x437eeb.2
push 0x2d
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebp + 0x36d8]
lea ecx, [ecx + ecx*4]
shl ecx, 4
mov edx, dword [ecx + 0x461318]
mov ecx, dword [esp + 0x30]
lea eax, [edx + eax*2]
add ecx, eax
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0x30]
cmp ebx, 0x80000000
mov cl, byte [esp + 0x5c8]
jne 0x43818e
cmp cl, 3
je 0x438120
cmp cl, 6
jbe 0x43818e
cmp cl, 0xa
ja 0x43813b
mov eax, dword [ebp + 0x36d8]
lea edx, [eax + eax*4]
shl edx, 4
mov ebx, dword [edx + 0x461318]
imul ebx, ebx, 0xf
mov dword [esp + 0x30], ebx
jmp 0x43818e
mov eax, dword [ebp + 0x36d8]
lea eax, [eax + eax*4]
shl eax, 4
mov eax, dword [eax + 0x461318]
lea ebx, [eax + eax*8]
shl ebx, 1
mov dword [esp + 0x30], ebx
mov edi, dword [esp + 0x18]
test esi, esi
je 0x43815e
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x438153
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp]
push esi
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x38]
add esi, 3
dec eax
cmp eax, 9
mov byte [esp + 0x2e], 0
mov byte [esp + 0x1f], 0
ja case.default.0x43817c
jmp dword [eax*4 + 0x438944]
mov cl, byte [esp + 0x5c8]
mov ebx, dword [esp + 0x30]
cmp cl, 0xa
jne 0x43813b
test byte [esp + 0x10], 4
jne 0x43813b
fld dword [esp + 0x20]
fcomp dword [0x457c00]
fnstsw ax
test ah, 0x41
jp 0x438227
test esi, esi
jne 0x4381d9
mov ecx, dword [ebp]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
mov eax, dword [ebp + 0x36d8]
lea edx, [eax + eax*4]
shl edx, 4
mov eax, dword [edx + 0x461324]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x78]
push ecx
push esi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x78]
mov eax, edi
sub eax, ecx
sub eax, 9
test eax, eax
mov dword [esp + 0x40], eax
jle 0x43821d
mov edx, dword [esp + 0x88]
fild dword [esp + 0x40]
add edx, ecx
mov dword [esp + 0x40], edx
fidiv dword [esp + 0x40]
fadd dword [0x456d90]
fstp dword [esp + 0x20]
jmp 0x43822b
mov dword [esp + 0x20], 0x3f800000
jmp 0x43822b
mov edi, dword [esp + 0x18]
fld dword [esp + 0x20]
fcomp qword [0x456d88]
fnstsw ax
test ah, 5
mov eax, dword [esp + 0x10]
jp 0x43824e
or eax, 0x80
mov dword [esp + 0x10], eax
jmp 0x43813f
or eax, 0x201004
mov dword [esp + 0x10], eax
jmp 0x43813f
mov edx, dword [0x45d6e0]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x14]
push 0
push edx
mov edx, dword [esp + 0x2c]
push esi
push eax
mov eax, dword [esp + 0x20]
push edi
push ebx
push ecx
push edx
or eax, 0x100
push eax
mov eax, dword [esp + 0x5f4]
push eax
push str.static
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x43873e
cmp ebx, 0x80000000
jne 0x4382ae
xor ebx, ebx
mov dword [esp + 0x30], ebx
cmp edi, 0x80000000
jne 0x4382bc
xor edi, edi
mov dword [esp + 0x18], edi
mov edx, dword [0x45d6e0]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x14]
push 0
push edx
mov edx, dword [esp + 0x2c]
push esi
mov esi, dword [esp + 0x5dc]
push eax
mov eax, dword [esp + 0x20]
push edi
push ebx
push ecx
push edx
or eax, 0x10e
push eax
push esi
push str.static
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
je 0x438747
push edi
push ebx
push esi
call fcn.0043cc90
mov edx, dword [esp + 0x34]
add esp, 0xc
test eax, eax
mov dword [edx + 0x18], eax
je 0x43873e
push eax
push 0
mov eax, edx
mov ecx, dword [eax]
push 0x172
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov byte [esp + 0x1f], 1
jmp 0x43873e
mov edx, dword [0x45d6e0]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x14]
push 0
push edx
mov edx, dword [esp + 0x2c]
push esi
push eax
mov eax, dword [esp + 0x20]
push edi
push ebx
push ecx
push edx
or eax, 0x2007
push eax
mov eax, dword [esp + 0x5f4]
push eax
push str.button
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x43873e
mov edx, dword [0x45d6e0]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x14]
push 0
push edx
mov edx, dword [esp + 0x2c]
push esi
push eax
push edi
push ebx
mov ebx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x5ec]
push edx
mov eax, ebx
or eax, 0x6000
push eax
push ecx
push str.button
push 0x100
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov edx, dword [esp + 0x28]
mov dword [edx], eax
je 0x438747
test bl, 1
je 0x43873e
mov eax, dword [ebp + 0x36bc]
cmp eax, dword [ebp + 8]
jae 0x438408
imul eax, eax, 0x1c
mov eax, dword [eax + ebp + 0xc]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov ecx, dword [ebp + 0x36bc]
imul ecx, ecx, 0x1c
mov edx, dword [ecx + ebp + 0xc]
and eax, 0xfffffffe
push eax
push 0xfffffffffffffff0
push edx
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [ebp + 8]
mov dword [ebp + 0x36bc], eax
jmp 0x43873e
mov eax, dword [esp + 0x10]
test al, 6
jne 0x438421
or eax, 3
mov ecx, dword [0x45d6e0]
mov edx, dword [ebp]
push 0
push ecx
mov ecx, dword [esp + 0x1c]
push esi
push edx
mov edx, dword [esp + 0x34]
push edi
push ebx
push ecx
push edx
or eax, 0x2000
push eax
mov eax, dword [esp + 0x5f4]
push eax
push str.button
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
je 0x438747
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x43873e
push 0
mov edx, ecx
push edx
push 0xf1
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x43873e
mov eax, dword [0x45d6e0]
mov ecx, dword [ebp]
mov edx, dword [esp + 0x14]
push 0
push eax
mov eax, dword [esp + 0x2c]
push esi
push ecx
mov ecx, dword [esp + 0x5e0]
push edi
push ebx
push edx
push eax
mov eax, dword [esp + 0x30]
or eax, 0x2009
push eax
push ecx
push str.button
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov edx, dword [esp + 0x28]
mov dword [edx], eax
je 0x438747
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x4384e3
push 0
push ecx
push 0xf1
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov byte [ebp + 0x36d0], 1
jmp 0x43873e
mov eax, dword [0x45d6e0]
mov ecx, dword [ebp]
mov edx, dword [esp + 0x14]
push 0
push eax
mov eax, dword [esp + 0x2c]
push esi
push ecx
push edi
push ebx
push edx
push eax
mov al, byte [esp + 0x5e8]
xor ecx, ecx
cmp al, 8
mov eax, dword [esp + 0x30]
sete cl
lea edx, [esp + 0xd0]
add ecx, 2
or ecx, eax
or ecx, 0x200040
push ecx
push edx
push str.Combobox
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov esi, dword [esp + 0x28]
mov dword [esi], eax
je 0x438747
mov ecx, dword [ebp + 0x36d8]
lea ecx, [ecx + ecx*4]
push 0
shl ecx, 4
mov edx, dword [ecx + 0x461324]
push edx
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esi]
push 0
push 0
push 0x154
push eax
mov byte [esp + 0x3e], 1
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [esp + 0x34], eax
lea eax, [eax + eax + 0xd]
cmp edi, eax
jge 0x438594
mov edi, eax
jmp 0x438671
fld dword [esp + 0x20]
fcomp dword [0x457c00]
fnstsw ax
test ah, 0x41
jne 0x438675
fild dword [esp + 0x34]
fmul dword [esp + 0x20]
call fcn.004452f4
mov edi, eax
add edi, 0xd
jmp 0x438671
mov ecx, dword [0x45d6e0]
mov edx, dword [ebp]
mov eax, dword [esp + 0x14]
push 0
push ecx
mov ecx, dword [esp + 0x2c]
push esi
push edx
push edi
push ebx
push eax
mov eax, dword [esp + 0x2c]
push ecx
or eax, 0xa00001
push eax
lea edx, [esp + 0xd4]
push edx
push str.Listbox
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov esi, dword [esp + 0x28]
mov dword [esi], eax
je 0x438747
mov ecx, dword [ebp + 0x36d8]
lea ecx, [ecx + ecx*4]
push 0
shl ecx, 4
mov edx, dword [ecx + 0x461324]
push edx
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esi]
push 0
push 0
push 0x1a1
push eax
mov byte [esp + 0x3e], 1
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [esp + 0x34], eax
add eax, 9
cmp edi, eax
jge 0x43864e
mov edi, eax
jmp 0x438671
fld dword [esp + 0x20]
fcomp dword [0x457c00]
fnstsw ax
test ah, 0x41
jne 0x438675
fild dword [esp + 0x34]
fmul dword [esp + 0x20]
call fcn.004452f4
mov edi, eax
add edi, 9
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov eax, dword [esi]
push 0
push edi
push ebx
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
mov byte [esp + 0x1f], 1
jmp 0x43873e
mov ecx, dword [esp + 0x5d0]
cmp byte [ecx], 0
mov ebx, dword [esp + 0x10]
je 0x438768
test bl, 4
je 0x438768
mov edx, ecx
push edx
call fcn.0043c7d0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4386cb
mov eax, dword [esp + 0x5d0]
mov ecx, dword [0x45d6e0]
mov edx, dword [ebp]
push 0
push ecx
mov ecx, dword [esp + 0x20]
push esi
push edx
mov edx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x3c]
push ecx
push edx
mov ecx, ebx
or ecx, 0x800000
push ecx
push eax
push str.edit
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov edx, dword [esp + 0x28]
mov dword [edx], eax
je 0x438731
test bl, 0x20
je 0x438731
mov cl, byte [esp + 0x2f]
cmp cl, 0x2a
je 0x438731
push 0
movsx ecx, cl
push ecx
push 0xcc
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test edi, edi
je 0x43873e
push edi
call fcn.00444c1d
add esp, 4
mov edx, dword [esp + 0x28]
cmp dword [edx], 0
jne 0x43876f
push 0x44f4f8
push str.The_control_could_not_be_created.__The_current_thread_will_exit.
mov ecx, 0x45ebb8
call fcn.0041e570
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x5b4
ret 0xc
xor edi, edi
jmp 0x4386c4
mov esi, dword [esp + 0x28]
mov al, byte [esp + 0x5c8]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x5d0]
mov byte [esi + 4], al
mov eax, dword [ebp + 8]
push ecx
push edx
inc eax
push esi
mov ecx, ebp
mov dword [ebp + 8], eax
call fcn.004369a0
mov al, byte [esp + 0x2e]
test al, al
jne 0x4387c7
cmp byte [esi + 4], 2
je 0x4387c7
mov eax, dword [ebp + 0x36d8]
mov edx, dword [esi]
lea eax, [eax + eax*4]
push 0
shl eax, 4
mov ecx, dword [eax + 0x461324]
push ecx
push 0x30
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov al, byte [esp + 0x1f]
test al, al
je 0x4387f3
mov ecx, dword [esi]
lea eax, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
sub edx, ecx
sub esi, eax
jmp 0x4387fb
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov dword [ebp + 0x36fc], ecx
add ecx, edx
mov dword [ebp + 0x36f8], eax
mov dword [ebp + 0x3704], edx
mov edx, dword [ebp + 0x3708]
add eax, esi
cmp eax, edx
mov dword [ebp + 0x3700], esi
jle 0x43882f
mov dword [ebp + 0x3708], eax
cmp ecx, dword [ebp + 0x370c]
jle 0x43883d
mov dword [ebp + 0x370c], ecx
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x5b4
ret 0xc
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x5b4
ret 0xc