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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x560
mov eax, dword [0x6244f8]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x534], eax
push ebx
push esi
mov esi, ecx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x51c], edx
push edi
mov dword [esi], vtable.CXDialogTemplate.0
mov eax, dword [edx + 0x858]
mov dword [esi + 0x54], eax
mov eax, dword [edx + 0x854]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
mov eax, dword [edx + 4]
mov dword [esi + 0x68], eax
mov eax, dword [edx + 8]
mov dword [esi + 0x6c], eax
mov eax, dword [edx + 0xc]
mov dword [esi + 0x70], eax
mov eax, dword [edx + 0x10]
mov dword [esi + 0x74], eax
mov dword [esi + 0x88], 0xffffffff
mov eax, dword [edx + 0x850]
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], 0x3e9
mov dword [esi + 0x94], 1
mov eax, dword [edx]
mov dword [esi + 0x98], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x9c], eax
mov dword [ebp - 0x530], eax
mov eax, dword [edx + 0x14]
and eax, 1
mov dword [esi + 0xa4], eax
mov ecx, dword [edx + 0x14]
and ecx, 2
mov dword [esi + 0xa8], ecx
mov eax, dword [edx + 0x14]
and eax, 4
mov dword [esi + 0xb0], 0
mov dword [esi + 0xac], eax
mov eax, dword [edx + 0x84c]
mov dword [esi + 0xb4], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0xb8], eax
mov eax, dword [edx + 0x18]
mov dword [esi + 0xbc], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0xc0], eax
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0x4ec], 0
mov dword [esi + 0x4f0], 0
mov eax, dword [edx + 0x85c]
mov dword [esi + 0x4f4], eax
mov edx, dword [edx + 0x860]
mov eax, edx
mov dword [esi + 0x4f8], edx
mov dword [esi + 0x4fc], 0
test ecx, ecx
je 0x4570be
mov dword [esi + 0xa4], 1
cmp edx, 0xffffffff
jne 0x4570be
push 5
call dword [sym.imp.USER32.dll_GetSysColor]
mov dword [esi + 0x4f8], eax
cmp eax, 0xffffffff
je 0x4570d0
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esi + 0x4fc], eax
mov edi, dword [sym.imp.USER32.dll_GetDialogBaseUnits]
mov dword [ebp - 0x518], edi
call edi
movzx eax, ax
mov dword [ebp - 0x544], eax
call edi
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
push 4
push dword [ebp - 0x544]
shr eax, 0x10
push 0x26
mov dword [ebp - 0x540], eax
call edi
push 8
push dword [ebp - 0x540]
mov dword [esi + 0x78], eax
push 0xc
call edi
push 4
push dword [ebp - 0x544]
mov dword [esi + 0x80], eax
push 0xd
call edi
cmp dword [esi + 0xa8], 0
mov dword [esi + 0x7c], eax
je 0x457152
push 4
push dword [ebp - 0x544]
push 6
call edi
add dword [esi + 0x78], eax
push 8
push dword [ebp - 0x540]
push 1
call edi
add dword [esi + 0x80], eax
push 8
push dword [ebp - 0x540]
push 0xa
call edi
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x53c], eax
mov eax, dword [ebp - 0x530]
and eax, 0xf00
cmp eax, 0x300
ja 0x4571ae
je 0x4571a5
test eax, eax
je 0x4571bc
cmp eax, 0x100
je 0x45719c
cmp eax, 0x200
jne 0x4571bc
mov dword [esi + 0x64], 3
jmp 0x4571d5
mov dword [esi + 0x64], 2
jmp 0x4571d5
mov dword [esi + 0x64], 4
jmp 0x4571d5
cmp eax, 0x400
je 0x4571ce
cmp eax, 0x500
je 0x4571c5
mov dword [esi + 0x64], 1
jmp 0x4571d5
mov dword [esi + 0x64], 6
jmp 0x4571d5
mov dword [esi + 0x64], 5
push 0x208
lea edi, [esi + 0x2e4]
push 0
push edi
call fcn.00570de0
mov ecx, dword [ebp - 0x51c]
add esp, 0xc
add ecx, 0x644
sub edi, ecx
lea esp, [esp]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edi + ecx - 2], ax
test ax, ax
jne 0x457200
push 0xc8
lea eax, [esi + 0x512]
push 0
push eax
call fcn.00570de0
push 0x20000
call fcn.00538f33
add esp, 0x10
mov dword [esi + 0xd4], eax
test eax, eax
je 0x457245
xor ecx, ecx
mov word [eax], cx
mov eax, dword [esi + 0xd4]
push 0x20000
push 0
push eax
call fcn.00570de0
push 0x20000
call fcn.00538f33
add esp, 0x10
mov dword [esi + 0xd8], eax
test eax, eax
je 0x457274
xor ecx, ecx
mov word [eax], cx
mov eax, dword [esi + 0xd8]
push 0x20000
push 0
push eax
call fcn.00570de0
mov edi, dword [esi + 0xbc]
add esp, 0xc
mov dword [ebp - 0x528], edi
test edi, edi
jne 0x4572a3
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
mov dword [ebp - 0x528], eax
test ebx, ebx
je 0x4572f1
mov ecx, dword [esi + 0xd4]
mov eax, ebx
shr eax, 0x10
push 0xffff
test eax, eax
jne 0x4572d8
push ecx
movzx eax, bx
push eax
push edi
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
jne 0x4572e2
mov eax, dword [esi + 0xd4]
xor ecx, ecx
mov word [eax], cx
jmp 0x4572e2
push ebx
push ecx
call fcn.0058889a
add esp, 0xc
mov eax, dword [esi + 0xd4]
xor ecx, ecx
mov word [eax + 0x1fffe], cx
mov edx, dword [ebp - 0x534]
test edx, edx
je 0x457345
mov ecx, dword [esi + 0xd8]
mov eax, edx
shr eax, 0x10
push 0xffff
test eax, eax
jne 0x45732c
push ecx
movzx eax, dx
push eax
push edi
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
jne 0x457336
mov eax, dword [esi + 0xd8]
xor ecx, ecx
mov word [eax], cx
jmp 0x457336
push edx
push ecx
call fcn.0058889a
add esp, 0xc
mov eax, dword [esi + 0xd8]
xor ecx, ecx
mov word [eax + 0x1fffe], cx
push 0x208
lea ebx, [esi + 0xdc]
push 0
push ebx
call fcn.00570de0
mov ecx, dword [ebp - 0x51c]
add esp, 0xc
mov eax, dword [ecx + 0x22c]
test eax, eax
je 0x457390
push 0x103
push ebx
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
push eax
push edi
call ebx
mov ecx, dword [ebp - 0x51c]
lea edx, [esi + 0xdc]
test eax, eax
jne 0x45739c
mov word [edx], ax
jmp 0x45739c
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
lea edx, [esi + 0xdc]
cmp word [edx], 0
jne 0x4573c1
cmp word [ecx + 0x230], 0
lea eax, [ecx + 0x230]
je 0x4573c1
push 0x103
push eax
push edx
call fcn.0058889a
add esp, 0xc
xor eax, eax
push 0xc8
mov word [esi + 0x2e2], ax
lea eax, [esi + 0xf88]
push 0
push eax
call fcn.00570de0
mov ecx, dword [ebp - 0x51c]
add esp, 0xc
mov eax, dword [ecx + 0x438]
test eax, eax
je 0x45740e
push 0x63
lea ecx, [esi + 0xf88]
push ecx
push eax
push edi
call ebx
mov ecx, dword [ebp - 0x51c]
test eax, eax
jne 0x45740e
mov word [esi + 0xf88], ax
cmp word [esi + 0xf88], 0
jne 0x45743a
cmp word [ecx + 0x43c], 0
lea eax, [ecx + 0x43c]
je 0x45743a
push 0x63
push eax
lea eax, [esi + 0xf88]
push eax
call fcn.0058889a
add esp, 0xc
xor eax, eax
xor edi, edi
mov word [esi + 0x104e], ax
jmp 0x457450
imul ebx, edi, 0xc8
lea ecx, [esi + 0x628]
add ecx, ebx
cmp edi, 0xc
jne 0x457483
cmp word [ecx], 0
jne 0x4574a1
mov edx, dword [0x62371c]
nop
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x457470
jmp 0x4574a1
mov edx, dword [edi*8 + 0x6236bc]
lea ebx, [ebx]
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x457490
xor eax, eax
inc edi
mov word [ebx + esi + 0x6ee], ax
cmp edi, 0x13
jl 0x457450
mov eax, dword [ebp - 0x51c]
cmp dword [eax + 0x864], 0
je 0x4574d2
add eax, 0x868
mov ecx, esi
push eax
call fcn.0045a240
jmp 0x457557
test dword [ebp - 0x530], 0x20000000
jne 0x457557
xor ebx, ebx
imul edi, ebx, 0xc8
mov dword [ebp - 0x534], edi
add edi, 0x628
add edi, esi
cmp ebx, 0xc
jne 0x45750a
cmp word [edi], 0
jne 0x457541
push 0x64
push edi
push dword [0x623718]
jmp 0x457514
push 0x64
push edi
push dword [ebx*8 + 0x6236b8]
push dword [ebp - 0x528]
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
jne 0x457541
mov ecx, dword [ebx*8 + 0x6236bc]
jmp 0x457530
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edi], ax
lea edi, [edi + 2]
test ax, ax
jne 0x457530
mov eax, dword [ebp - 0x534]
xor ecx, ecx
inc ebx
mov word [eax + esi + 0x6ee], cx
cmp ebx, 0x13
jl 0x4574e0
push 0
push 0
push 0
push 0x5c6ec4
call dword [sym.imp.GDI32.dll_CreateDCW]
mov ebx, eax
mov dword [ebp - 0x510], 0x1f4
push 0
lea eax, [ebp - 0x510]
mov dword [ebp - 0x538], ebx
push eax
push 0x1f4
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
lea eax, [ebp - 0x378]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
mov dword [esi + 0x4f0], eax
mov eax, dword [sym.imp.GDI32.dll_SelectObject]
push ebx
mov dword [ebp - 0x554], eax
call eax
mov dword [ebp - 0x558], eax
lea edi, [esi + 0x628]
lea eax, [esi + 0x5dc]
mov dword [ebp - 0x528], 0x13
mov dword [ebp - 0x514], eax
mov ebx, eax
mov eax, dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov dword [ebp - 0x52c], eax
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4575e6
sub ecx, edx
lea eax, [ebp - 0x54c]
push eax
sar ecx, 1
push ecx
push edi
push dword [ebp - 0x538]
call dword [ebp - 0x52c]
mov eax, dword [ebp - 0x54c]
mov ecx, dword [ebp - 0x53c]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x457627
add ecx, dword [esi + 0x7c]
mov dword [ebx], ecx
add edi, 0xc8
add ebx, 4
sub dword [ebp - 0x528], 1
jne 0x4575e1
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call ebx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
add edi, 0x50
cmp dword [esi + 0xa8], 0
je 0x457666
push 0
call ebx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub edi, 0xa
cmp dword [esi + 0xac], 0
je 0x457683
push 0
call ebx
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov edi, edx
shr edi, 0x1f
add edi, edx
mov ebx, dword [ebp - 0x530]
and ebx, 0xf0
je 0x4576a2
push 0xb
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 0xfffffff0
sub ecx, eax
add edi, ecx
push edi
push edi
push 0
lea eax, [esi + 0xc4]
push 0
push eax
mov eax, dword [sym.imp.USER32.dll_SetRect]
mov dword [ebp - 0x524], eax
call eax
push 0xc50
lea edi, [esi + 0xc4]
push edi
push 0xffffffffffffffff
push dword [esi + 0xd4]
push dword [ebp - 0x538]
call dword [sym.imp.USER32.dll_DrawTextW]
mov eax, dword [esi + 0xd0]
sub eax, dword [esi + 0xc8]
mov dword [ebp - 0x520], eax
lea eax, [ebp - 0x560]
push eax
push 2
push 0x5c6ed4
push dword [ebp - 0x538]
call dword [ebp - 0x52c]
mov ecx, dword [esi + 0xa8]
mov eax, 0x20
test ecx, ecx
mov dword [edi], 0x10
mov edx, 0x10
mov edi, 0x38
cmovne edx, eax
add dword [esi + 0xcc], 0x1c
test ecx, ecx
mov dword [esi + 0xc8], edx
mov eax, 0x18
cmovne eax, edi
mov edi, dword [ebp - 0x524]
add eax, 5
add dword [esi + 0xd0], eax
mov eax, dword [esi + 0xd0]
sub eax, edx
add eax, 0x10
push eax
push dword [esi + 0xcc]
lea eax, [ebp - 0x22c]
push 0
push 0
push eax
call edi
cmp dword [esi + 0xa8], 0
je 0x45777d
add dword [ebp - 0x224], 0x10
mov ecx, dword [ebp - 0x220]
mov edx, 0x46
mov eax, ecx
mov dword [esi + 0x504], 0
sub eax, dword [ebp - 0x228]
cmp eax, edx
cmovl ecx, edx
xor eax, eax
test dword [ebp - 0x530], 0x1000
mov dword [esi + 0x50a], eax
mov word [esi + 0x508], ax
mov eax, 0x90c80880
mov dword [ebp - 0x220], ecx
mov ecx, 0x90c80882
cmovne eax, ecx
mov dword [esi + 0x500], eax
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
push eax
mov dword [esi + 0x40], eax
push eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
push eax
mov dword [esi + 0x4c], eax
push eax
mov dword [esi + 0x50], eax
lea eax, [ebp - 0x23c]
push eax
call edi
mov ecx, dword [esi + 0xc0]
test ecx, ecx
jne 0x45782f
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, eax
mov edx, dword [ebp - 0x51c]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x457843
movzx eax, ax
push eax
push ecx
jmp 0x457886
cmp word [edx + 0x24], 0
lea eax, [edx + 0x24]
je 0x457851
push eax
push ecx
jmp 0x457886
test ebx, ebx
je 0x457892
add ebx, 0xfffffff0
mov ecx, 0x7f03
cmp ebx, 0x30
ja case.0x457869.17
movzx eax, byte [ebx + 0x4597e0]
jmp dword [eax*4 + 0x4597cc]
mov ecx, 0x7f01
jmp case.0x457869.17
mov ecx, 0x7f02
jmp case.0x457869.17
mov ecx, 0x7f04
push ecx
push 0
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [esi + 0x4ec], eax
cmp dword [esi + 0x4ec], 0
je 0x457a51
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xb
call ebx
mov edi, eax
push 0xc
mov dword [ebp - 0x528], edi
call ebx
mov ecx, dword [esi + 0xa8]
mov edx, 8
mov dword [ebp - 0x534], eax
test ecx, ecx
mov eax, 0x18
cmovne edx, eax
lea eax, [edx + edi]
add dword [esi + 0xc4], eax
mov eax, dword [esi + 0xcc]
add eax, edx
add edi, eax
mov dword [esi + 0xcc], edi
lea eax, [edi + 8]
mov dword [ebp - 0x224], eax
test ecx, ecx
je 0x4578ff
lea eax, [edi + 0x18]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x534]
add eax, 2
add eax, edx
push eax
mov eax, dword [ebp - 0x528]
add eax, 2
add eax, edx
push eax
push edx
push edx
lea eax, [ebp - 0x23c]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x548], ecx
test ecx, ecx
je 0x457952
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x82
mov dword [ecx + 0x1c], 0
jmp 0x457954
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov ebx, dword [esi + eax*4 + 4]
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
movzx eax, ax
movsx ecx, ax
mov dword [ebx + 0x18], 0x82
mov eax, dword [ebp - 0x23c]
shl eax, 2
cdq
idiv ecx
movsx edi, di
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x238]
shl eax, 3
cdq
idiv edi
push 2
mov word [ebx + 0xe], ax
mov eax, dword [ebp - 0x234]
sub eax, dword [ebp - 0x23c]
shl eax, 2
cdq
idiv ecx
mov word [ebx + 0x10], ax
mov eax, dword [ebp - 0x230]
sub eax, dword [ebp - 0x238]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0x12], ax
mov eax, 0x3e8
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
mov dword [ebx + 4], 0x50000000
call fcn.00538f33
mov ecx, eax
add esp, 4
mov dword [ebx + 0x1c], ecx
mov edx, 0x5bbe20
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x457a02
inc word [esi + 0x508]
cmp dword [esi + 0xa8], 0
je 0x457a51
mov eax, dword [ebp - 0x520]
cmp eax, dword [ebp - 0x55c]
jle 0x457a51
mov ecx, dword [esi + 0xd0]
sub ecx, dword [esi + 0xc8]
mov eax, dword [ebp - 0x238]
mov dword [esi + 0xc8], eax
add eax, ecx
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x90]
mov edi, dword [esi + 0xd4]
mov dword [ebp - 0x51c], eax
mov dword [esi + 0xa0], eax
inc eax
push 0x20
mov dword [esi + 0x90], eax
mov dword [ebp - 0x528], edi
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x548], ecx
test ecx, ecx
je 0x457aa2
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x82
mov dword [ecx + 0x1c], 0
jmp 0x457aa4
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov ebx, dword [esi + eax*4 + 4]
call dword [ebp - 0x518]
shr eax, 0x10
mov dword [ebp - 0x534], eax
call dword [ebp - 0x518]
movzx ecx, ax
lea eax, [esi + 0xc4]
mov dword [ebx + 0x18], 0x82
test eax, eax
je 0x457b3e
mov eax, dword [eax]
shl eax, 2
cdq
movsx edi, cx
idiv edi
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x534]
movsx ecx, ax
mov eax, dword [esi + 0xc8]
shl eax, 3
cdq
idiv ecx
mov word [ebx + 0xe], ax
mov eax, dword [esi + 0xcc]
sub eax, dword [esi + 0xc4]
shl eax, 2
cdq
idiv edi
mov edi, dword [ebp - 0x528]
mov word [ebx + 0x10], ax
mov eax, dword [esi + 0xd0]
sub eax, dword [esi + 0xc8]
shl eax, 3
cdq
idiv ecx
movzx eax, ax
jmp 0x457b4c
xor eax, eax
mov dword [ebx + 0xc], eax
mov eax, 0xa
mov word [ebx + 0x10], ax
mov word [ebx + 0x12], ax
mov eax, dword [ebp - 0x51c]
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
mov dword [ebx + 4], 0x50000000
test edi, edi
je 0x457b82
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x457b71
sub ecx, edx
sar ecx, 1
jmp 0x457b84
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
add esp, 4
mov edx, eax
test edi, edi
mov dword [ebx + 0x1c], edx
mov ecx, 0x5bbe20
cmovne ecx, edi
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x457bb0
inc word [esi + 0x508]
lea eax, [esi + 0xdc]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x528], ebx
cmp word [eax], bx
jne 0x457cec
mov ecx, dword [ebp - 0x530]
mov eax, ecx
and eax, 0xf
cmp eax, 9
ja case.default.0x457bf5
jmp dword [eax*4 + 0x459814]
mov eax, dword [ebp - 0x514]
mov edi, dword [esi + 0x610]
add edi, dword [esi + 0x5f8]
add edi, dword [eax]
jmp 0x457cb2
mov edi, dword [esi + 0x61c]
add edi, dword [esi + 0x5e4]
jmp 0x457cac
mov eax, dword [ebp - 0x514]
mov ebx, 2
mov edi, dword [esi + 0x5e4]
add edi, dword [eax]
jmp case.default.0x457bf5
mov edi, dword [esi + 0x5fc]
add edi, dword [esi + 0x5f8]
jmp 0x457cac
mov edi, dword [esi + 0x608]
mov ebx, 1
jmp case.default.0x457bf5
mov edi, dword [esi + 0x608]
mov ebx, 2
add edi, dword [esi + 0x5e0]
jmp case.default.0x457bf5
mov edi, dword [esi + 0x610]
mov ebx, 2
add edi, dword [esi + 0x5e0]
jmp case.default.0x457bf5
mov edi, dword [esi + 0x618]
add edi, dword [esi + 0x614]
jmp 0x457cac
mov edi, dword [esi + 0x620]
mov ebx, 2
add edi, dword [esi + 0x600]
jmp case.default.0x457bf5
mov edi, dword [esi + 0x620]
add edi, dword [esi + 0x600]
add edi, dword [esi + 0x5e0]
mov ebx, 3
test ecx, 0x8000000
je 0x457ccb
test cl, 7
je 0x457ccb
add edi, dword [esi + 0x624]
inc ebx
test ecx, 0x10000000
je 0x457dad
test cl, 7
je 0x457dad
add edi, dword [esi + 0x604]
inc ebx
jmp 0x457dad
lea edx, [ebp - 0x20c]
mov ecx, eax
sub edx, eax
jmp 0x457d00
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x457d00
xor ebx, ebx
lea eax, [ebp - 0x20c]
push ebx
push 0x5c3574
push eax
call fcn.005888db
mov edx, eax
add esp, 0xc
test edx, edx
je 0x457da7
xor edi, edi
nop
cmp ebx, 4
jge 0x457d9f
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x534], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x457d40
sub ecx, dword [ebp - 0x534]
lea eax, [ebp - 0x54c]
push eax
sar ecx, 1
push ecx
push edx
push dword [ebp - 0x538]
call dword [ebp - 0x52c]
mov eax, dword [ebp - 0x54c]
mov ecx, dword [ebp - 0x53c]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x457d85
add ecx, dword [esi + 0x7c]
push 0
push 0x5c3574
push 0
add edi, ecx
call fcn.005888db
mov edx, eax
add esp, 0xc
inc ebx
test edx, edx
jne 0x457d30
mov dword [ebp - 0x528], edi
xor edi, edi
mov ecx, dword [ebp - 0x530]
mov eax, ecx
and eax, 0x4000
mov dword [ebp - 0x550], eax
je 0x457dc3
inc ebx
add edi, dword [esi + 0x5f4]
cmp dword [esi + 0x54], 0
je 0x457dd0
inc ebx
add edi, dword [esi + 0x60c]
mov eax, ecx
and eax, 0x1000000
mov dword [ebp - 0x534], eax
je 0x457de5
or dword [esi + 0x5c], 1
jmp 0x457dff
test ecx, 0x2000000
je 0x457df3
or dword [esi + 0x5c], 2
jmp 0x457dff
test ecx, 0x4000000
je 0x457dff
or dword [esi + 0x5c], 4
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebp - 0x230]
cmp eax, ecx
cmovg ecx, eax
add ecx, 5
cmp dword [esi + 0x4ec], 0
jne 0x457e27
cmp dword [esi + 0x4fc], 0
mov edx, ecx
je 0x457e2c
lea edx, [ecx + 9]
mov ecx, edx
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*2]
mov edi, dword [ebp - 0x528]
add edi, 0xfffffffa
add edi, eax
mov eax, dword [esi + 0x80]
add eax, edx
mov dword [ebp - 0x210], edi
push eax
push edi
push ecx
push 0
lea eax, [ebp - 0x24c]
push eax
call dword [ebp - 0x524]
cmp dword [esi + 0x64], ebx
jle 0x457e69
mov dword [esi + 0x64], 1
cmp dword [ebp - 0x534], 0
je 0x457e79
mov ebx, 3
jmp 0x457e99
mov eax, dword [ebp - 0x530]
test eax, 0x2000000
je 0x457e8d
mov ebx, 4
jmp 0x457e99
test eax, 0x4000000
je 0x457eae
mov ebx, 5
mov dword [ebp - 0x528], ebx
mov ebx, dword [esi + ebx*4 + 0x5dc]
add ebx, dword [esi + 0x84]
jmp 0x457eba
xor ebx, ebx
mov dword [ebp - 0x528], 0xffffffff
mov edx, dword [ebp - 0x244]
sub edx, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x224]
add eax, 0xc
mov edi, dword [ebp - 0x22c]
mov dword [ebp - 0x220], eax
lea eax, [edx + 0x20]
cmp ecx, eax
mov dword [ebp - 0x534], ebx
cmovle ecx, eax
mov eax, ecx
mov dword [ebp - 0x224], ecx
sub eax, edi
cmp eax, ebx
jge 0x457f06
lea ecx, [ebx + 0x10]
mov dword [ebp - 0x224], ecx
mov eax, ecx
sub eax, edi
mov edi, dword [ebp - 0x248]
sub eax, edx
mov dword [ebp - 0x520], edi
cdq
sub eax, edx
mov dword [ebp - 0x548], edi
sar eax, 1
cmp dword [esi + 0xa4], 0
mov ebx, eax
mov dword [ebp - 0x514], eax
mov dword [ebp - 0x51c], eax
je 0x457f51
sub ecx, dword [ebp - 0x210]
lea eax, [ecx - 0x10]
mov dword [ebp - 0x514], eax
mov ebx, eax
mov dword [ebp - 0x51c], eax
cmp word [esi + 0xdc], 0
jne 0x4594d2
mov ecx, dword [ebp - 0x530]
and ecx, 0xf
cmp ecx, 9
ja case.default.0x457f71
jmp dword [ecx*4 + 0x45983c]
mov eax, dword [esi + 0x80]
add eax, edi
push eax
mov eax, dword [esi + 0x608]
add eax, ebx
push eax
push edi
push ebx
lea eax, [ebp - 0x30c]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x457fc5
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x457fc7
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov ebx, dword [esi + eax*4 + 4]
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
movzx eax, ax
movsx ecx, ax
mov dword [ebx + 0x18], 0x80
mov eax, dword [ebp - 0x30c]
shl eax, 2
cdq
idiv ecx
movsx edi, di
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x308]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0xe], ax
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x30c]
shl eax, 2
cdq
idiv ecx
mov word [ebx + 0x10], ax
mov eax, dword [ebp - 0x300]
sub eax, dword [ebp - 0x308]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0x12], ax
mov eax, 1
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ebx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x45807d
mov dword [ebx + 4], 0x50010001
mov dword [esi + 0x94], 1
lea edi, [esi + 0xec0]
test edi, edi
je 0x4580a1
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458090
sub ecx, edx
sar ecx, 1
jmp 0x4580a3
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
add esp, 4
mov edx, eax
test edi, edi
mov dword [ebx + 0x1c], edx
mov ecx, 0x5bbe20
cmovne ecx, edi
mov edi, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x4580d0
inc word [esi + 0x508]
mov edx, dword [ebp - 0x514]
mov ebx, dword [esi + 0x608]
add edx, 6
add ebx, edx
or dword [esi + 0x5c], 0x10
mov dword [ebp - 0x51c], ebx
jmp 0x45960b
mov eax, dword [esi + 0x80]
add eax, edi
push eax
mov eax, dword [esi + 0x608]
add eax, ebx
push eax
push edi
push ebx
lea eax, [ebp - 0x2fc]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x458155
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x458157
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov ebx, dword [esi + eax*4 + 4]
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
movzx eax, ax
movsx ecx, ax
mov dword [ebx + 0x18], 0x80
mov eax, dword [ebp - 0x2fc]
shl eax, 2
cdq
idiv ecx
movsx edi, di
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x2f8]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0xe], ax
mov eax, dword [ebp - 0x2f4]
sub eax, dword [ebp - 0x2fc]
shl eax, 2
cdq
idiv ecx
mov word [ebx + 0x10], ax
mov eax, dword [ebp - 0x2f0]
sub eax, dword [ebp - 0x2f8]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0x12], ax
mov eax, 1
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ebx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x45820d
mov dword [ebx + 4], 0x50010001
mov dword [esi + 0x94], 1
lea edi, [esi + 0xec0]
test edi, edi
je 0x458231
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458220
sub ecx, edx
sar ecx, 1
jmp 0x458233
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov edx, eax
add esp, 4
mov dword [ebx + 0x1c], edx
test edi, edi
mov ebx, 0x5bbe20
mov ecx, ebx
cmovne ecx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x458260
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x520]
add eax, ecx
mov edx, dword [ebp - 0x514]
inc word [esi + 0x508]
add edx, 6
add edx, dword [esi + 0x608]
push eax
mov eax, dword [esi + 0x5e0]
add eax, edx
mov dword [ebp - 0x210], edx
push eax
push ecx
push edx
lea eax, [ebp - 0x2ec]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x53c], ecx
test ecx, ecx
je 0x4582e0
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x4582e2
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov eax, dword [esi + eax*4 + 4]
mov dword [ebp - 0x514], eax
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
mov ecx, dword [ebp - 0x514]
movzx eax, ax
movsx edi, di
mov dword [ecx + 0x18], 0x80
movsx ecx, ax
mov eax, dword [ebp - 0x2ec]
shl eax, 2
cdq
idiv ecx
mov edx, dword [ebp - 0x514]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x2e8]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x514]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x2e4]
sub eax, dword [ebp - 0x2ec]
shl eax, 2
cdq
idiv ecx
mov ecx, dword [ebp - 0x514]
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x2e0]
sub eax, dword [ebp - 0x2e8]
shl eax, 3
cdq
idiv edi
mov word [ecx + 0x12], ax
mov eax, 2
mov dword [ecx + 8], 0
mov word [ecx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ecx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x4583b6
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 2
lea edi, [esi + 0x6f0]
test edi, edi
je 0x4583d6
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4583c5
sub ecx, edx
sar ecx, 1
jmp 0x4583d8
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x514]
test edi, edi
cmovne ebx, edi
mov dword [eax + 0x1c], ecx
movzx eax, word [ebx]
lea ebx, [ebx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x458404
mov ecx, dword [ebp - 0x210]
mov ebx, dword [esi + 0x5e0]
add ecx, 6
inc word [esi + 0x508]
add ebx, ecx
or dword [esi + 0x5c], 8
mov dword [ebp - 0x51c], ebx
jmp 0x45960b
mov eax, dword [esi + 0x80]
add eax, edi
push eax
mov eax, dword [esi + 0x620]
add eax, ebx
push eax
push edi
push ebx
lea eax, [ebp - 0x2dc]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x458489
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x45848b
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov ebx, dword [esi + eax*4 + 4]
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
movzx eax, ax
movsx ecx, ax
mov dword [ebx + 0x18], 0x80
mov eax, dword [ebp - 0x2dc]
shl eax, 2
cdq
idiv ecx
movsx edi, di
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x2d8]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0xe], ax
mov eax, dword [ebp - 0x2d4]
sub eax, dword [ebp - 0x2dc]
shl eax, 2
cdq
idiv ecx
mov word [ebx + 0x10], ax
mov eax, dword [ebp - 0x2d0]
sub eax, dword [ebp - 0x2d8]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0x12], ax
mov eax, 6
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ebx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x458541
mov dword [ebx + 4], 0x50010001
mov dword [esi + 0x94], 6
lea edi, [esi + 0x1370]
test edi, edi
je 0x458561
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458550
sub ecx, edx
sar ecx, 1
jmp 0x458563
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov edx, eax
add esp, 4
mov dword [ebx + 0x1c], edx
test edi, edi
mov ebx, 0x5bbe20
mov ecx, ebx
cmovne ecx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x458590
inc word [esi + 0x508]
mov edx, dword [ebp - 0x514]
mov edi, dword [esi + 0x620]
add edx, 6
add edi, edx
test dword [ebp - 0x530], 0x8000000
mov dword [ebp - 0x52c], edi
mov edx, edi
je 0x458780
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x520]
add eax, ecx
push eax
mov eax, dword [esi + 0x624]
add eax, edi
push eax
push ecx
push edi
lea eax, [ebp - 0x2cc]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x458624
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x458626
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov eax, dword [esi + eax*4 + 4]
mov dword [ebp - 0x514], eax
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
mov ecx, dword [ebp - 0x514]
movzx eax, ax
movsx edi, di
mov dword [ecx + 0x18], 0x80
movsx ecx, ax
mov eax, dword [ebp - 0x2cc]
shl eax, 2
cdq
idiv ecx
mov edx, dword [ebp - 0x514]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x2c8]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x514]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x2c4]
sub eax, dword [ebp - 0x2cc]
shl eax, 2
cdq
idiv ecx
mov ecx, dword [ebp - 0x514]
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x2c0]
sub eax, dword [ebp - 0x2c8]
shl eax, 3
cdq
idiv edi
mov word [ecx + 0x12], ax
mov eax, 0x13
mov dword [ecx + 8], 0
mov word [ecx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ecx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x4586fa
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 0x13
lea edi, [esi + 0x1438]
test edi, edi
je 0x458721
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458710
sub ecx, edx
sar ecx, 1
jmp 0x458723
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x514]
test edi, edi
mov ecx, ebx
cmovne ecx, edi
mov dword [eax + 0x1c], edx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x458751
mov edi, dword [ebp - 0x52c]
inc word [esi + 0x508]
add edi, 6
add edi, dword [esi + 0x624]
mov dword [ebp - 0x52c], edi
mov edx, edi
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x520]
add eax, ecx
push eax
mov eax, dword [esi + 0x600]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0x2bc]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x4587d3
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x4587d5
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov eax, dword [esi + eax*4 + 4]
mov dword [ebp - 0x514], eax
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
mov ecx, dword [ebp - 0x514]
movzx eax, ax
movsx edi, di
mov dword [ecx + 0x18], 0x80
movsx ecx, ax
mov eax, dword [ebp - 0x2bc]
shl eax, 2
cdq
idiv ecx
mov edx, dword [ebp - 0x514]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x2b8]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x514]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x2b4]
sub eax, dword [ebp - 0x2bc]
shl eax, 2
cdq
idiv ecx
mov ecx, dword [ebp - 0x514]
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x2b0]
sub eax, dword [ebp - 0x2b8]
shl eax, 3
cdq
idiv edi
mov word [ecx + 0x12], ax
mov eax, 7
mov dword [ecx + 8], 0
mov word [ecx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ecx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x4588a9
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 7
lea edi, [esi + 0xd30]
test edi, edi
je 0x4588d1
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x4588c0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4588c0
sub ecx, edx
sar ecx, 1
jmp 0x4588d3
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x514]
test edi, edi
cmovne ebx, edi
mov dword [eax + 0x1c], ecx
nop
movzx eax, word [ebx]
lea ebx, [ebx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x458900
inc word [esi + 0x508]
mov ecx, dword [ebp - 0x52c]
mov ebx, dword [esi + 0x600]
add ecx, 6
add ebx, ecx
test dword [ebp - 0x530], 0x10000000
mov dword [ebp - 0x51c], ebx
je 0x45960b
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x520]
add eax, ecx
push eax
mov eax, dword [esi + 0x604]
add eax, ebx
push eax
push ecx
push ebx
lea eax, [ebp - 0x2ac]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x458992
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x458994
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov eax, dword [esi + eax*4 + 4]
mov dword [ebp - 0x514], eax
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
mov ecx, dword [ebp - 0x514]
movzx eax, ax
movsx edi, di
mov dword [ecx + 0x18], 0x80
movsx ecx, ax
mov eax, dword [ebp - 0x2ac]
shl eax, 2
cdq
idiv ecx
mov edx, dword [ebp - 0x514]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x2a8]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x514]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x2a4]
sub eax, dword [ebp - 0x2ac]
shl eax, 2
cdq
idiv ecx
mov ecx, dword [ebp - 0x514]
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x2a0]
sub eax, dword [ebp - 0x2a8]
shl eax, 3
cdq
idiv edi
mov word [ecx + 0x12], ax
mov eax, 0x14
mov dword [ecx + 8], 0
mov word [ecx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ecx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x458a68
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 0x14
lea edi, [esi + 0xdf8]
test edi, edi
je 0x458a88
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458a77
sub ecx, edx
sar ecx, 1
jmp 0x458a8a
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x514]
test edi, edi
mov ecx, 0x5bbe20
cmovne ecx, edi
mov dword [eax + 0x1c], edx
jmp 0x458ac0
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x458ac0
inc word [esi + 0x508]
mov eax, dword [esi + 0x604]
add eax, 6
add ebx, eax
mov dword [ebp - 0x51c], ebx
jmp 0x45960b
mov eax, dword [esi + 0x80]
add eax, edi
push eax
mov eax, dword [esi + 0x620]
add eax, ebx
push eax
push edi
push ebx
lea eax, [ebp - 0x29c]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x458b3b
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x458b3d
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov ebx, dword [esi + eax*4 + 4]
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
movzx eax, ax
movsx ecx, ax
mov dword [ebx + 0x18], 0x80
mov eax, dword [ebp - 0x29c]
shl eax, 2
cdq
idiv ecx
movsx edi, di
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x298]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0xe], ax
mov eax, dword [ebp - 0x294]
sub eax, dword [ebp - 0x29c]
shl eax, 2
cdq
idiv ecx
mov word [ebx + 0x10], ax
mov eax, dword [ebp - 0x290]
sub eax, dword [ebp - 0x298]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0x12], ax
mov eax, 6
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ebx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x458bf3
mov dword [ebx + 4], 0x50010001
mov dword [esi + 0x94], 6
lea edi, [esi + 0x1370]
test edi, edi
je 0x458c13
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458c02
sub ecx, edx
sar ecx, 1
jmp 0x458c15
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov edx, eax
add esp, 4
mov dword [ebx + 0x1c], edx
test edi, edi
mov ebx, 0x5bbe20
mov ecx, ebx
cmovne ecx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x458c42
inc word [esi + 0x508]
mov edx, dword [ebp - 0x514]
mov edi, dword [esi + 0x620]
add edx, 6
add edi, edx
test dword [ebp - 0x530], 0x8000000
mov dword [ebp - 0x52c], edi
mov edx, edi
je 0x458e30
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x520]
add eax, ecx
push eax
mov eax, dword [esi + 0x624]
add eax, edi
push eax
push ecx
push edi
lea eax, [ebp - 0x28c]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x458cd6
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x458cd8
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov eax, dword [esi + eax*4 + 4]
mov dword [ebp - 0x514], eax
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
mov ecx, dword [ebp - 0x514]
movzx eax, ax
movsx edi, di
mov dword [ecx + 0x18], 0x80
movsx ecx, ax
mov eax, dword [ebp - 0x28c]
shl eax, 2
cdq
idiv ecx
mov edx, dword [ebp - 0x514]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x288]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x514]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x284]
sub eax, dword [ebp - 0x28c]
shl eax, 2
cdq
idiv ecx
mov ecx, dword [ebp - 0x514]
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x280]
sub eax, dword [ebp - 0x288]
shl eax, 3
cdq
idiv edi
mov word [ecx + 0x12], ax
mov eax, 0x13
mov dword [ecx + 8], 0
mov word [ecx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ecx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x458dac
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 0x13
lea edi, [esi + 0x1438]
test edi, edi
je 0x458dd1
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x458dc0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458dc0
sub ecx, edx
sar ecx, 1
jmp 0x458dd3
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x514]
test edi, edi
mov ecx, ebx
cmovne ecx, edi
mov dword [eax + 0x1c], edx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x458e01
mov edi, dword [ebp - 0x52c]
inc word [esi + 0x508]
add edi, 6
add edi, dword [esi + 0x624]
mov dword [ebp - 0x52c], edi
mov edx, edi
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x520]
add eax, ecx
push eax
mov eax, dword [esi + 0x600]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0x27c]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x458e83
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x458e85
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov eax, dword [esi + eax*4 + 4]
mov dword [ebp - 0x514], eax
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
mov ecx, dword [ebp - 0x514]
movzx eax, ax
movsx edi, di
mov dword [ecx + 0x18], 0x80
movsx ecx, ax
mov eax, dword [ebp - 0x27c]
shl eax, 2
cdq
idiv ecx
mov edx, dword [ebp - 0x514]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x278]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x514]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x274]
sub eax, dword [ebp - 0x27c]
shl eax, 2
cdq
idiv ecx
mov ecx, dword [ebp - 0x514]
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x270]
sub eax, dword [ebp - 0x278]
shl eax, 3
cdq
idiv edi
mov word [ecx + 0x12], ax
mov eax, 7
mov dword [ecx + 8], 0
mov word [ecx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ecx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x458f59
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 7
lea edi, [esi + 0xd30]
test edi, edi
je 0x458f81
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x458f70
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458f70
sub ecx, edx
sar ecx, 1
jmp 0x458f83
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x514]
test edi, edi
mov ecx, ebx
cmovne ecx, edi
mov dword [eax + 0x1c], edx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x458fb1
mov ecx, dword [ebp - 0x52c]
inc word [esi + 0x508]
add ecx, 6
mov edi, dword [esi + 0x600]
add edi, ecx
test dword [ebp - 0x530], 0x10000000
mov dword [ebp - 0x52c], edi
mov edx, edi
je 0x4591a0
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x520]
add eax, ecx
push eax
mov eax, dword [esi + 0x604]
add eax, edi
push eax
push ecx
push edi
lea eax, [ebp - 0x26c]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x459045
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x459047
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov eax, dword [esi + eax*4 + 4]
mov dword [ebp - 0x514], eax
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
mov ecx, dword [ebp - 0x514]
movzx eax, ax
movsx edi, di
mov dword [ecx + 0x18], 0x80
movsx ecx, ax
mov eax, dword [ebp - 0x26c]
shl eax, 2
cdq
idiv ecx
mov edx, dword [ebp - 0x514]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x268]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x514]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x264]
sub eax, dword [ebp - 0x26c]
shl eax, 2
cdq
idiv ecx
mov ecx, dword [ebp - 0x514]
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x260]
sub eax, dword [ebp - 0x268]
shl eax, 3
cdq
idiv edi
mov word [ecx + 0x12], ax
mov eax, 0x14
mov dword [ecx + 8], 0
mov word [ecx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ecx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x45911b
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 0x14
lea edi, [esi + 0xdf8]
test edi, edi
je 0x459141
mov ecx, edi
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x459130
sub ecx, edx
sar ecx, 1
jmp 0x459143
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x514]
test edi, edi
mov ecx, ebx
cmovne ecx, edi
mov dword [eax + 0x1c], edx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x459171
mov edi, dword [ebp - 0x52c]
inc word [esi + 0x508]
add edi, 6
add edi, dword [esi + 0x604]
mov dword [ebp - 0x52c], edi
mov edx, edi
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x520]
add eax, ecx
push eax
mov eax, dword [esi + 0x5e0]
add eax, edx
push eax
push ecx
push edx
lea eax, [ebp - 0x25c]
push eax
call dword [ebp - 0x524]
push 0x20
call fcn.00538ef6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x4591f3
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x4591f5
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov eax, dword [esi + eax*4 + 4]
mov dword [ebp - 0x514], eax
call dword [ebp - 0x518]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x518]
mov ecx, dword [ebp - 0x514]
movzx eax, ax
movsx edi, di
mov dword [ecx + 0x18], 0x80
movsx ecx, ax
mov eax, dword [ebp - 0x25c]
shl eax, 2
cdq
idiv ecx
mov edx, dword [ebp - 0x514]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x258]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x514]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x254]
sub eax, dword [ebp - 0x25c]
shl eax, 2
cdq
idiv ecx
mov ecx, dword [ebp - 0x514]
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x250]
sub eax, dword [ebp - 0x258]
shl eax, 3
cdq
idiv edi
mov word [ecx + 0x12], ax
mov eax, 2
mov dword [ecx + 8], 0
mov word [ecx + 0x14], ax
inc dword [esi + 0x60]
mov dword [ecx + 4], 0x50010000
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x64]
jne 0x4592c9
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 2
lea edi, [esi + 0x6f0]
test edi, edi
je 0x4592f1
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x4592e0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4592e0
sub ecx, edx
sar ecx, 1
jmp 0x4592f3
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00538f33
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x514]
test edi, edi
cmovne ebx, edi
mov dword [eax + 0x1c], ecx
nop
movzx eax, word [ebx]
lea ebx, [ebx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x459320
mov ecx, dword [ebp - 0x52c]
mov ebx, dword [esi + 0x5e0]
add ecx, 6
inc word [esi + 0x508]
add ebx, ecx
or dword [esi + 0x5c], 8
mov dword [ebp - 0x51c], ebx
jmp 0x45960b
push edi
push eax
push 3
push 0
mov ecx, esi
call fcn.00459990
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x520]
push ebx
push edi
push 4
push 0xd
call fcn.00459990
push ebx
add edi, eax
mov ecx, esi
push edi
push 5
push 7
call fcn.00459990
lea ebx, [eax + edi]
mov dword [ebp - 0x51c], ebx
jmp 0x45960b
push edi
push eax
push 4
push 0xd
mov ecx, esi
call fcn.00459990
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x520]
push ebx
push edi
push 2
push 1
mov ecx, esi
call fcn.00459990
or dword [esi + 0x5c], 8
lea ebx, [eax + edi]
mov dword [ebp - 0x51c], ebx
jmp 0x45960b
push edi
push eax
push 0xb
push 2
mov ecx, esi
call fcn.00459990
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x520]
push ebx
push edi
push 3
push 0
call fcn.00459990
lea ebx, [eax + edi]
mov dword [ebp - 0x51c], ebx
jmp 0x45960b
push edi
push eax
push 2
push 1
mov ecx, esi
call fcn.00459990
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x520]
push ebx
push edi
push 0xa
push 0x10
call fcn.00459990
push ebx
add edi, eax
push edi
push 0xb
push 2
jmp 0x4593b4
push edi
push eax
push 0xe
push 0xe
mov ecx, esi
call fcn.00459990
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x520]
push ebx
push edi
push 0xf
push 0xf
call fcn.00459990
add edi, eax
jmp 0x4593ae
push edi
push eax
push 5
push 7
mov ecx, esi
call fcn.00459990
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x520]
push ebx
push edi
push 0x10
push 8
call fcn.00459990
add edi, eax
jmp 0x4593ae
mov eax, dword [esi + 0x80]
add eax, edi
push eax
mov eax, dword [esi + 0x608]
add eax, ebx
push eax
push edi
push ebx
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x524]
lea eax, [esi + 0xec0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 1
push 0x80
call fcn.00459be0
mov eax, dword [esi + 0x608]
add eax, 6
add ebx, eax
mov dword [ebp - 0x51c], ebx
jmp 0x459611
or dword [esi + 0x5c], 8
lea eax, [ebp - 0x20c]
push 0x208
push 0
push eax
call fcn.00570de0
push 0x103
lea eax, [esi + 0xdc]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.0058889a
xor eax, eax
push eax
mov dword [ebp - 0x530], eax
lea eax, [ebp - 0x20c]
push 0x5c3574
push eax
call fcn.005888db
mov edx, eax
add esp, 0x24
mov dword [ebp - 0x518], edx
test edx, edx
je 0x459611
xor eax, eax
cmp eax, 4
jge 0x45960b
mov ecx, edx
lea edi, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x459540
sub ecx, edi
lea eax, [ebp - 0x214]
push eax
sar ecx, 1
push ecx
push edx
push dword [ebp - 0x538]
call dword [ebp - 0x52c]
mov eax, dword [ebp - 0x214]
mov ecx, dword [ebp - 0x53c]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x459581
add ecx, dword [esi + 0x7c]
mov edx, dword [ebp - 0x514]
mov eax, dword [esi + 0x80]
lea edi, [ecx + edx]
mov ecx, dword [ebp - 0x520]
add eax, ecx
push eax
push edi
push ecx
push edx
lea eax, [ebp - 0x31c]
push eax
call dword [ebp - 0x524]
push dword [ebp - 0x518]
lea eax, [ebp - 0x31c]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x530]
add eax, 0x17
push eax
push 0x80
call fcn.00459be0
push 0
lea eax, [edi + 6]
push 0x5c3574
push 0
mov dword [ebp - 0x514], eax
mov ebx, eax
mov dword [ebp - 0x51c], eax
call fcn.005888db
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x530]
inc eax
mov dword [ebp - 0x518], edx
mov dword [ebp - 0x530], eax
test edx, edx
jne 0x459530
mov edi, dword [ebp - 0x520]
cmp dword [ebp - 0x550], 0
je 0x45966b
mov eax, dword [esi + 0x80]
add eax, edi
push eax
mov eax, dword [esi + 0x5f4]
add eax, ebx
push eax
push edi
push ebx
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x524]
lea eax, [esi + 0xad8]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x12c
push 0x80
call fcn.00459be0
mov eax, dword [esi + 0x5f4]
add eax, 6
add ebx, eax
mov dword [ebp - 0x51c], ebx
cmp dword [esi + 0x54], 0
je 0x4596c6
mov eax, dword [esi + 0x80]
add eax, edi
push eax
mov eax, dword [esi + 0x60c]
add eax, ebx
push eax
push edi
mov edi, dword [ebp - 0x524]
lea eax, [ebp - 0x21c]
push ebx
push eax
call edi
lea eax, [esi + 0xf88]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x12d
push 0x80
call fcn.00459be0
mov eax, dword [esi + 0x60c]
add eax, 6
add eax, ebx
mov dword [ebp - 0x51c], eax
jmp 0x4596cc
mov edi, dword [ebp - 0x524]
mov ebx, dword [ebp - 0x528]
cmp ebx, 0xffffffff
je 0x45972f
push dword [esi + 0x84]
lea eax, [ebp - 0x21c]
push dword [ebp - 0x534]
push 0
push 0
push eax
call edi
imul eax, ebx, 0xc8
mov ecx, esi
add eax, 0x628
add eax, esi
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x548]
push eax
lea eax, [ebp - 0x51c]
push eax
call fcn.00459a10
mov eax, dword [ebp - 0x240]
mov edi, dword [ebp - 0x220]
cmp eax, edi
jl 0x459748
lea edi, [eax + 0x10]
mov dword [ebp - 0x220], edi
mov eax, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x224]
add eax, 0x10
cmp ecx, eax
mov ebx, dword [ebp - 0x538]
push dword [ebp - 0x558]
cmovl ecx, eax
xor eax, eax
mov dword [ebp - 0x224], ecx
sub ecx, dword [ebp - 0x22c]
mov dword [esi + 0x50a], eax
shl ecx, 2
mov eax, ecx
sub edi, dword [ebp - 0x228]
cdq
idiv dword [ebp - 0x544]
shl edi, 3
mov word [esi + 0x50e], ax
mov eax, edi
cdq
idiv dword [ebp - 0x540]
push ebx
mov word [esi + 0x510], ax
call dword [ebp - 0x554]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0056e41f
mov esp, ebp
pop ebp
ret 0x14