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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x564
mov eax, dword [0x65eb68]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x538], eax
push ebx
push esi
mov esi, ecx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x520], 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 - 0x534], 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 0x47efae
mov dword [esi + 0xa4], 1
cmp edx, 0xffffffff
jne 0x47efae
push 5
call dword [sym.imp.USER32.dll_GetSysColor]
mov dword [esi + 0x4f8], eax
cmp eax, 0xffffffff
je 0x47efc0
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 - 0x51c], edi
call edi
movzx eax, ax
mov dword [ebp - 0x548], eax
call edi
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
push 4
push dword [ebp - 0x548]
shr eax, 0x10
push 0x26
mov dword [ebp - 0x544], eax
call edi
push 8
push dword [ebp - 0x544]
mov dword [esi + 0x78], eax
push 0xc
call edi
push 4
push dword [ebp - 0x548]
mov dword [esi + 0x80], eax
push 0xd
call edi
cmp dword [esi + 0xa8], 0
mov dword [esi + 0x7c], eax
je 0x47f042
push 4
push dword [ebp - 0x548]
push 6
call edi
add dword [esi + 0x78], eax
push 8
push dword [ebp - 0x544]
push 1
call edi
add dword [esi + 0x80], eax
push 8
push dword [ebp - 0x544]
push 0xa
call edi
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x540], eax
mov eax, dword [ebp - 0x534]
and eax, 0xf00
cmp eax, 0x300
ja 0x47f09e
je 0x47f095
test eax, eax
je 0x47f0ac
cmp eax, 0x100
je 0x47f08c
cmp eax, 0x200
jne 0x47f0ac
mov dword [esi + 0x64], 3
jmp 0x47f0c5
mov dword [esi + 0x64], 2
jmp 0x47f0c5
mov dword [esi + 0x64], 4
jmp 0x47f0c5
cmp eax, 0x400
je 0x47f0be
cmp eax, 0x500
je 0x47f0b5
mov dword [esi + 0x64], 1
jmp 0x47f0c5
mov dword [esi + 0x64], 6
jmp 0x47f0c5
mov dword [esi + 0x64], 5
push 0x208
lea edi, [esi + 0x2e4]
push 0
push edi
call fcn.0059dbb0
mov ecx, dword [ebp - 0x520]
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 0x47f0f0
push 0xc8
lea eax, [esi + 0x512]
push 0
push eax
call fcn.0059dbb0
push 0x20000
call fcn.005649e3
add esp, 0x10
mov dword [esi + 0xd4], eax
test eax, eax
je 0x47f135
xor ecx, ecx
mov word [eax], cx
mov eax, dword [esi + 0xd4]
push 0x20000
push 0
push eax
call fcn.0059dbb0
push 0x20000
call fcn.005649e3
add esp, 0x10
mov dword [esi + 0xd8], eax
test eax, eax
je 0x47f164
xor ecx, ecx
mov word [eax], cx
mov eax, dword [esi + 0xd8]
push 0x20000
push 0
push eax
call fcn.0059dbb0
mov edi, dword [esi + 0xbc]
add esp, 0xc
mov dword [ebp - 0x52c], edi
test edi, edi
jne 0x47f193
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
mov dword [ebp - 0x52c], eax
test ebx, ebx
je 0x47f1e1
mov ecx, dword [esi + 0xd4]
mov eax, ebx
shr eax, 0x10
push 0xffff
test eax, eax
jne 0x47f1c8
push ecx
movzx eax, bx
push eax
push edi
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
jne 0x47f1d2
mov eax, dword [esi + 0xd4]
xor ecx, ecx
mov word [eax], cx
jmp 0x47f1d2
push ebx
push ecx
call fcn.005b7dfc
add esp, 0xc
mov eax, dword [esi + 0xd4]
xor ecx, ecx
mov word [eax + 0x1fffe], cx
mov edx, dword [ebp - 0x538]
test edx, edx
je 0x47f235
mov ecx, dword [esi + 0xd8]
mov eax, edx
shr eax, 0x10
push 0xffff
test eax, eax
jne 0x47f21c
push ecx
movzx eax, dx
push eax
push edi
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
jne 0x47f226
mov eax, dword [esi + 0xd8]
xor ecx, ecx
mov word [eax], cx
jmp 0x47f226
push edx
push ecx
call fcn.005b7dfc
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.0059dbb0
mov ecx, dword [ebp - 0x520]
add esp, 0xc
mov eax, dword [ecx + 0x22c]
test eax, eax
je 0x47f280
push 0x103
push ebx
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
push eax
push edi
call ebx
mov ecx, dword [ebp - 0x520]
lea edx, [esi + 0xdc]
test eax, eax
jne 0x47f28c
mov word [edx], ax
jmp 0x47f28c
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
lea edx, [esi + 0xdc]
cmp word [edx], 0
jne 0x47f2b1
cmp word [ecx + 0x230], 0
lea eax, [ecx + 0x230]
je 0x47f2b1
push 0x103
push eax
push edx
call fcn.005b7dfc
add esp, 0xc
xor eax, eax
push 0xc8
mov word [esi + 0x2e2], ax
lea eax, [esi + 0xf88]
push 0
push eax
call fcn.0059dbb0
mov ecx, dword [ebp - 0x520]
add esp, 0xc
mov eax, dword [ecx + 0x438]
test eax, eax
je 0x47f2fe
push 0x63
lea ecx, [esi + 0xf88]
push ecx
push eax
push edi
call ebx
mov ecx, dword [ebp - 0x520]
test eax, eax
jne 0x47f2fe
mov word [esi + 0xf88], ax
cmp word [esi + 0xf88], 0
jne 0x47f32a
cmp word [ecx + 0x43c], 0
lea eax, [ecx + 0x43c]
je 0x47f32a
push 0x63
push eax
lea eax, [esi + 0xf88]
push eax
call fcn.005b7dfc
add esp, 0xc
xor eax, eax
xor edi, edi
mov word [esi + 0x104e], ax
jmp 0x47f340
imul ebx, edi, 0xc8
lea ecx, [esi + 0x628]
add ecx, ebx
cmp edi, 0xc
jne 0x47f373
cmp word [ecx], 0
jne 0x47f391
mov edx, dword [str.Report]
nop
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x47f360
jmp 0x47f391
mov edx, dword [edi*8 + 0x65dc14]
lea ebx, [ebx]
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x47f380
xor eax, eax
inc edi
mov word [ebx + esi + 0x6ee], ax
cmp edi, 0x13
jl 0x47f340
mov eax, dword [ebp - 0x520]
cmp dword [eax + 0x864], 0
je 0x47f3c2
add eax, 0x868
mov ecx, esi
push eax
call fcn.00482130
jmp 0x47f447
test dword [ebp - 0x534], 0x20000000
jne 0x47f447
xor ebx, ebx
imul edi, ebx, 0xc8
mov dword [ebp - 0x538], edi
add edi, 0x628
add edi, esi
cmp ebx, 0xc
jne 0x47f3fa
cmp word [edi], 0
jne 0x47f431
push 0x64
push edi
push dword [0x65dc70]
jmp 0x47f404
push 0x64
push edi
push dword [ebx*8 + 0x65dc10]
push dword [ebp - 0x52c]
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
jne 0x47f431
mov ecx, dword [ebx*8 + 0x65dc14]
jmp 0x47f420
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edi], ax
lea edi, [edi + 2]
test ax, ax
jne 0x47f420
mov eax, dword [ebp - 0x538]
xor ecx, ecx
inc ebx
mov word [eax + esi + 0x6ee], cx
cmp ebx, 0x13
jl 0x47f3d0
push 0
push 0
push 0
push 0x5f8454
call dword [sym.imp.GDI32.dll_CreateDCW]
mov ebx, eax
mov dword [ebp - 0x514], 0x1f4
push 0
lea eax, [ebp - 0x514]
mov dword [ebp - 0x53c], ebx
push eax
push 0x1f4
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
lea eax, [ebp - 0x37c]
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 - 0x558], eax
call eax
mov dword [ebp - 0x55c], eax
lea edi, [esi + 0x628]
lea eax, [esi + 0x5dc]
mov dword [ebp - 0x52c], 0x13
mov dword [ebp - 0x518], eax
mov ebx, eax
mov eax, dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov dword [ebp - 0x530], eax
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47f4d6
sub ecx, edx
lea eax, [ebp - 0x550]
push eax
sar ecx, 1
push ecx
push edi
push dword [ebp - 0x53c]
call dword [ebp - 0x530]
mov eax, dword [ebp - 0x550]
mov ecx, dword [ebp - 0x540]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x47f517
add ecx, dword [esi + 0x7c]
mov dword [ebx], ecx
add edi, 0xc8
add ebx, 4
sub dword [ebp - 0x52c], 1
jne 0x47f4d1
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 0x47f556
push 0
call ebx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub edi, 0xa
cmp dword [esi + 0xac], 0
je 0x47f573
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 - 0x534]
and ebx, 0xf0
je 0x47f592
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 - 0x528], eax
call eax
push 0xc50
lea edi, [esi + 0xc4]
push edi
push 0xffffffffffffffff
push dword [esi + 0xd4]
push dword [ebp - 0x53c]
call dword [sym.imp.USER32.dll_DrawTextW]
mov eax, dword [esi + 0xd0]
sub eax, dword [esi + 0xc8]
mov dword [ebp - 0x524], eax
lea eax, [ebp - 0x564]
push eax
push 2
push 0x5f8464
push dword [ebp - 0x53c]
call dword [ebp - 0x530]
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 - 0x528]
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 0x47f66d
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 - 0x534], 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 0x47f71f
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, eax
mov edx, dword [ebp - 0x520]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x47f733
movzx eax, ax
push eax
push ecx
jmp 0x47f776
cmp word [edx + 0x24], 0
lea eax, [edx + 0x24]
je 0x47f741
push eax
push ecx
jmp 0x47f776
test ebx, ebx
je 0x47f782
add ebx, 0xfffffff0
mov ecx, 0x7f03
cmp ebx, 0x30
ja case.0x47f759.17
movzx eax, byte [ebx + 0x4816d0]
jmp dword [eax*4 + 0x4816bc]
mov ecx, 0x7f01
jmp case.0x47f759.17
mov ecx, 0x7f02
jmp case.0x47f759.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 0x47f941
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xb
call ebx
mov edi, eax
push 0xc
mov dword [ebp - 0x52c], edi
call ebx
mov ecx, dword [esi + 0xa8]
mov edx, 8
mov dword [ebp - 0x538], 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 0x47f7ef
lea eax, [edi + 0x18]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x538]
add eax, 2
add eax, edx
push eax
mov eax, dword [ebp - 0x52c]
add eax, 2
add eax, edx
push eax
push edx
push edx
lea eax, [ebp - 0x23c]
push eax
call dword [ebp - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x54c], ecx
test ecx, ecx
je 0x47f842
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x82
mov dword [ecx + 0x1c], 0
jmp 0x47f844
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 - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
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.005649e3
mov ecx, eax
add esp, 4
mov dword [ebx + 0x1c], ecx
mov edx, 0x5ecc50
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x47f8f2
inc word [esi + 0x508]
cmp dword [esi + 0xa8], 0
je 0x47f941
mov eax, dword [ebp - 0x524]
cmp eax, dword [ebp - 0x560]
jle 0x47f941
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 - 0x520], eax
mov dword [esi + 0xa0], eax
inc eax
push 0x20
mov dword [ebp - 0x52c], edi
mov dword [esi + 0x90], eax
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x54c], ecx
test ecx, ecx
je 0x47f992
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x82
mov dword [ecx + 0x1c], 0
jmp 0x47f994
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 - 0x51c]
shr eax, 0x10
mov dword [ebp - 0x538], eax
call dword [ebp - 0x51c]
movzx ecx, ax
lea eax, [esi + 0xc4]
mov dword [ebx + 0x18], 0x82
test eax, eax
je 0x47fa2e
mov eax, dword [eax]
shl eax, 2
cdq
movsx edi, cx
idiv edi
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x538]
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 - 0x52c]
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 0x47fa3c
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 - 0x520]
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
mov dword [ebx + 4], 0x50000000
test edi, edi
je 0x47fa72
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47fa61
sub ecx, edx
sar ecx, 1
jmp 0x47fa74
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.005649e3
add esp, 4
mov edx, eax
test edi, edi
mov dword [ebx + 0x1c], edx
mov ecx, 0x5ecc50
cmovne ecx, edi
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x47faa0
inc word [esi + 0x508]
lea eax, [esi + 0xdc]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x52c], ebx
cmp word [eax], bx
jne 0x47fbdc
mov ecx, dword [ebp - 0x534]
mov eax, ecx
and eax, 0xf
cmp eax, 9
ja case.default.0x47fae5
jmp dword [eax*4 + 0x481704]
mov eax, dword [ebp - 0x518]
mov edi, dword [esi + 0x610]
add edi, dword [esi + 0x5f8]
add edi, dword [eax]
jmp 0x47fba2
mov edi, dword [esi + 0x61c]
add edi, dword [esi + 0x5e4]
jmp 0x47fb9c
mov eax, dword [ebp - 0x518]
mov ebx, 2
mov edi, dword [esi + 0x5e4]
add edi, dword [eax]
jmp case.default.0x47fae5
mov edi, dword [esi + 0x5fc]
add edi, dword [esi + 0x5f8]
jmp 0x47fb9c
mov edi, dword [esi + 0x608]
mov ebx, 1
jmp case.default.0x47fae5
mov edi, dword [esi + 0x608]
mov ebx, 2
add edi, dword [esi + 0x5e0]
jmp case.default.0x47fae5
mov edi, dword [esi + 0x610]
mov ebx, 2
add edi, dword [esi + 0x5e0]
jmp case.default.0x47fae5
mov edi, dword [esi + 0x618]
add edi, dword [esi + 0x614]
jmp 0x47fb9c
mov edi, dword [esi + 0x620]
mov ebx, 2
add edi, dword [esi + 0x600]
jmp case.default.0x47fae5
mov edi, dword [esi + 0x620]
add edi, dword [esi + 0x600]
add edi, dword [esi + 0x5e0]
mov ebx, 3
test ecx, 0x8000000
je 0x47fbbb
test cl, 7
je 0x47fbbb
add edi, dword [esi + 0x624]
inc ebx
test ecx, 0x10000000
je 0x47fc9d
test cl, 7
je 0x47fc9d
add edi, dword [esi + 0x604]
inc ebx
jmp 0x47fc9d
lea edx, [ebp - 0x20c]
mov ecx, eax
sub edx, eax
jmp 0x47fbf0
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x47fbf0
xor ebx, ebx
lea eax, [ebp - 0x20c]
push ebx
push 0x5f32fc
push eax
call fcn.005b7e3d
mov edx, eax
add esp, 0xc
test edx, edx
je 0x47fc97
xor edi, edi
nop
cmp ebx, 4
jge 0x47fc8f
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x538], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47fc30
sub ecx, dword [ebp - 0x538]
lea eax, [ebp - 0x550]
push eax
sar ecx, 1
push ecx
push edx
push dword [ebp - 0x53c]
call dword [ebp - 0x530]
mov eax, dword [ebp - 0x550]
mov ecx, dword [ebp - 0x540]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x47fc75
add ecx, dword [esi + 0x7c]
push 0
push 0x5f32fc
push 0
add edi, ecx
call fcn.005b7e3d
mov edx, eax
add esp, 0xc
inc ebx
test edx, edx
jne 0x47fc20
mov dword [ebp - 0x52c], edi
xor edi, edi
mov ecx, dword [ebp - 0x534]
mov eax, ecx
and eax, 0x4000
mov dword [ebp - 0x554], eax
je 0x47fcb3
inc ebx
add edi, dword [esi + 0x5f4]
cmp dword [esi + 0x54], 0
je 0x47fcc0
inc ebx
add edi, dword [esi + 0x60c]
mov eax, ecx
and eax, 0x1000000
mov dword [ebp - 0x538], eax
je 0x47fcd5
or dword [esi + 0x5c], 1
jmp 0x47fcef
test ecx, 0x2000000
je 0x47fce3
or dword [esi + 0x5c], 2
jmp 0x47fcef
test ecx, 0x4000000
je 0x47fcef
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 0x47fd17
cmp dword [esi + 0x4fc], 0
mov edx, ecx
je 0x47fd1c
lea edx, [ecx + 9]
mov ecx, edx
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*2]
mov edi, dword [ebp - 0x52c]
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 - 0x528]
cmp dword [esi + 0x64], ebx
jle 0x47fd59
mov dword [esi + 0x64], 1
cmp dword [ebp - 0x538], 0
je 0x47fd69
mov ebx, 3
jmp 0x47fd89
mov eax, dword [ebp - 0x534]
test eax, 0x2000000
je 0x47fd7d
mov ebx, 4
jmp 0x47fd89
test eax, 0x4000000
je 0x47fd9e
mov ebx, 5
mov dword [ebp - 0x52c], ebx
mov ebx, dword [esi + ebx*4 + 0x5dc]
add ebx, dword [esi + 0x84]
jmp 0x47fdaa
xor ebx, ebx
mov dword [ebp - 0x52c], 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 - 0x538], ebx
cmovle ecx, eax
mov eax, ecx
mov dword [ebp - 0x224], ecx
sub eax, edi
cmp eax, ebx
jge 0x47fdf6
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 - 0x524], edi
cdq
sub eax, edx
mov dword [ebp - 0x54c], edi
sar eax, 1
cmp dword [esi + 0xa4], 0
mov ebx, eax
mov dword [ebp - 0x518], eax
mov dword [ebp - 0x520], eax
je 0x47fe41
sub ecx, dword [ebp - 0x210]
lea eax, [ecx - 0x10]
mov dword [ebp - 0x518], eax
mov ebx, eax
mov dword [ebp - 0x520], eax
cmp word [esi + 0xdc], 0
jne 0x4813c2
mov ecx, dword [ebp - 0x534]
and ecx, 0xf
cmp ecx, 9
ja case.default.0x47fe61
jmp dword [ecx*4 + 0x48172c]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x47feb5
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x47feb7
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 - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
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 0x47ff6d
mov dword [ebx + 4], 0x50010001
mov dword [esi + 0x94], 1
lea edi, [esi + 0xec0]
test edi, edi
je 0x47ff91
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47ff80
sub ecx, edx
sar ecx, 1
jmp 0x47ff93
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.005649e3
add esp, 4
mov edx, eax
test edi, edi
mov dword [ebx + 0x1c], edx
mov ecx, 0x5ecc50
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 0x47ffc0
inc word [esi + 0x508]
mov edx, dword [ebp - 0x518]
mov ebx, dword [esi + 0x608]
add edx, 6
add ebx, edx
or dword [esi + 0x5c], 0x10
mov dword [ebp - 0x520], ebx
jmp 0x4814fb
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 - 0x528]
push 0x20
call fcn.005649a6
push cs
add byte [ebx + 0x4c483c8], cl
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x480045
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x480047
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 - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
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 0x4800fd
mov dword [ebx + 4], 0x50010001
mov dword [esi + 0x94], 1
lea edi, [esi + 0xec0]
test edi, edi
je 0x480121
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x480110
sub ecx, edx
sar ecx, 1
jmp 0x480123
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.005649e3
mov edx, eax
add esp, 4
mov dword [ebx + 0x1c], edx
test edi, edi
mov ebx, 0x5ecc50
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 0x480150
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x524]
add eax, ecx
mov edx, dword [ebp - 0x518]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x540], ecx
test ecx, ecx
je 0x4801d0
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x4801d2
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 - 0x518], eax
call dword [ebp - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x518]
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 - 0x518]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x2e8]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x518]
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 - 0x518]
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 0x4802a6
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 2
lea edi, [esi + 0x6f0]
test edi, edi
je 0x4802c6
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4802b5
sub ecx, edx
sar ecx, 1
jmp 0x4802c8
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.005649e3
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x518]
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 0x4802f4
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 - 0x520], ebx
jmp 0x4814fb
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x480379
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x48037b
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 - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
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 0x480431
mov dword [ebx + 4], 0x50010001
mov dword [esi + 0x94], 6
lea edi, [esi + 0x1370]
test edi, edi
je 0x480451
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x480440
sub ecx, edx
sar ecx, 1
jmp 0x480453
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.005649e3
mov edx, eax
add esp, 4
mov dword [ebx + 0x1c], edx
test edi, edi
mov ebx, 0x5ecc50
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 0x480480
inc word [esi + 0x508]
mov edx, dword [ebp - 0x518]
mov edi, dword [esi + 0x620]
add edx, 6
add edi, edx
test dword [ebp - 0x534], 0x8000000
mov dword [ebp - 0x530], edi
mov edx, edi
je 0x480670
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x524]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x480514
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x480516
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 - 0x518], eax
call dword [ebp - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x518]
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 - 0x518]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x2c8]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x518]
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 - 0x518]
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 0x4805ea
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 0x13
lea edi, [esi + 0x1438]
test edi, edi
je 0x480611
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x480600
sub ecx, edx
sar ecx, 1
jmp 0x480613
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.005649e3
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x518]
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 0x480641
mov edi, dword [ebp - 0x530]
inc word [esi + 0x508]
add edi, 6
add edi, dword [esi + 0x624]
mov dword [ebp - 0x530], edi
mov edx, edi
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x524]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x4806c3
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x4806c5
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 - 0x518], eax
call dword [ebp - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x518]
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 - 0x518]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x2b8]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x518]
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 - 0x518]
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 0x480799
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 7
lea edi, [esi + 0xd30]
test edi, edi
je 0x4807c1
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x4807b0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4807b0
sub ecx, edx
sar ecx, 1
jmp 0x4807c3
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.005649e3
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x518]
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 0x4807f0
inc word [esi + 0x508]
mov ecx, dword [ebp - 0x530]
mov ebx, dword [esi + 0x600]
add ecx, 6
add ebx, ecx
test dword [ebp - 0x534], 0x10000000
mov dword [ebp - 0x520], ebx
je 0x4814fb
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x524]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x480882
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x480884
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 - 0x518], eax
call dword [ebp - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x518]
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 - 0x518]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x2a8]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x518]
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 - 0x518]
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 0x480958
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 0x14
lea edi, [esi + 0xdf8]
test edi, edi
je 0x480978
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x480967
sub ecx, edx
sar ecx, 1
jmp 0x48097a
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.005649e3
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x518]
test edi, edi
mov ecx, 0x5ecc50
cmovne ecx, edi
mov dword [eax + 0x1c], edx
jmp 0x4809b0
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x4809b0
inc word [esi + 0x508]
mov eax, dword [esi + 0x604]
add eax, 6
add ebx, eax
mov dword [ebp - 0x520], ebx
jmp 0x4814fb
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x480a2b
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x480a2d
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 - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
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 0x480ae3
mov dword [ebx + 4], 0x50010001
mov dword [esi + 0x94], 6
lea edi, [esi + 0x1370]
test edi, edi
je 0x480b03
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x480af2
sub ecx, edx
sar ecx, 1
jmp 0x480b05
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.005649e3
mov edx, eax
add esp, 4
mov dword [ebx + 0x1c], edx
test edi, edi
mov ebx, 0x5ecc50
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 0x480b32
inc word [esi + 0x508]
mov edx, dword [ebp - 0x518]
mov edi, dword [esi + 0x620]
add edx, 6
add edi, edx
test dword [ebp - 0x534], 0x8000000
mov dword [ebp - 0x530], edi
mov edx, edi
je 0x480d20
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x524]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x480bc6
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x480bc8
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 - 0x518], eax
call dword [ebp - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x518]
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 - 0x518]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x288]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x518]
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 - 0x518]
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 0x480c9c
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 0x13
lea edi, [esi + 0x1438]
test edi, edi
je 0x480cc1
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x480cb0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x480cb0
sub ecx, edx
sar ecx, 1
jmp 0x480cc3
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.005649e3
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x518]
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 0x480cf1
mov edi, dword [ebp - 0x530]
inc word [esi + 0x508]
add edi, 6
add edi, dword [esi + 0x624]
mov dword [ebp - 0x530], edi
mov edx, edi
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x524]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x480d73
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x480d75
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 - 0x518], eax
call dword [ebp - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x518]
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 - 0x518]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x278]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x518]
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 - 0x518]
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 0x480e49
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 7
lea edi, [esi + 0xd30]
test edi, edi
je 0x480e71
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x480e60
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x480e60
sub ecx, edx
sar ecx, 1
jmp 0x480e73
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.005649e3
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x518]
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 0x480ea1
mov ecx, dword [ebp - 0x530]
inc word [esi + 0x508]
add ecx, 6
mov edi, dword [esi + 0x600]
add edi, ecx
test dword [ebp - 0x534], 0x10000000
mov dword [ebp - 0x530], edi
mov edx, edi
je 0x481090
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x524]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x480f35
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x480f37
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 - 0x518], eax
call dword [ebp - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x518]
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 - 0x518]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x268]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x518]
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 - 0x518]
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 0x48100b
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 0x14
lea edi, [esi + 0xdf8]
test edi, edi
je 0x481031
mov ecx, edi
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x481020
sub ecx, edx
sar ecx, 1
jmp 0x481033
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.005649e3
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x518]
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 0x481061
mov edi, dword [ebp - 0x530]
inc word [esi + 0x508]
add edi, 6
add edi, dword [esi + 0x604]
mov dword [ebp - 0x530], edi
mov edx, edi
mov eax, dword [esi + 0x80]
mov ecx, dword [ebp - 0x524]
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 - 0x528]
push 0x20
call fcn.005649a6
mov ecx, eax
add esp, 4
mov dword [ebp - 0x210], ecx
test ecx, ecx
je 0x4810e3
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x80
mov dword [ecx + 0x1c], 0
jmp 0x4810e5
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 - 0x518], eax
call dword [ebp - 0x51c]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x51c]
mov ecx, dword [ebp - 0x518]
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 - 0x518]
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x258]
shl eax, 3
cdq
idiv edi
mov edx, dword [ebp - 0x518]
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 - 0x518]
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 0x4811b9
mov dword [ecx + 4], 0x50010001
mov dword [esi + 0x94], 2
lea edi, [esi + 0x6f0]
test edi, edi
je 0x4811e1
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x4811d0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4811d0
sub ecx, edx
sar ecx, 1
jmp 0x4811e3
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.005649e3
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x518]
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 0x481210
mov ecx, dword [ebp - 0x530]
mov ebx, dword [esi + 0x5e0]
add ecx, 6
inc word [esi + 0x508]
add ebx, ecx
or dword [esi + 0x5c], 8
mov dword [ebp - 0x520], ebx
jmp 0x4814fb
push edi
push eax
push 3
push 0
mov ecx, esi
call fcn.00481880
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x524]
push ebx
push edi
push 4
push 0xd
call fcn.00481880
push ebx
add edi, eax
mov ecx, esi
push edi
push 5
push 7
call fcn.00481880
lea ebx, [eax + edi]
mov dword [ebp - 0x520], ebx
jmp 0x4814fb
push edi
push eax
push 4
push 0xd
mov ecx, esi
call fcn.00481880
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x524]
push ebx
push edi
push 2
push 1
mov ecx, esi
call fcn.00481880
or dword [esi + 0x5c], 8
lea ebx, [eax + edi]
mov dword [ebp - 0x520], ebx
jmp 0x4814fb
push edi
push eax
push 0xb
push 2
mov ecx, esi
call fcn.00481880
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x524]
push ebx
push edi
push 3
push 0
call fcn.00481880
lea ebx, [eax + edi]
mov dword [ebp - 0x520], ebx
jmp 0x4814fb
push edi
push eax
push 2
push 1
mov ecx, esi
call fcn.00481880
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x524]
push ebx
push edi
push 0xa
push 0x10
call fcn.00481880
push ebx
add edi, eax
push edi
push 0xb
push 2
jmp 0x4812a4
push edi
push eax
push 0xe
push 0xe
mov ecx, esi
call fcn.00481880
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x524]
push ebx
push edi
push 0xf
push 0xf
call fcn.00481880
add edi, eax
jmp 0x48129e
push edi
push eax
push 5
push 7
mov ecx, esi
call fcn.00481880
mov ecx, esi
lea edi, [eax + ebx]
mov ebx, dword [ebp - 0x524]
push ebx
push edi
push 0x10
push 8
call fcn.00481880
add edi, eax
jmp 0x48129e
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 - 0x528]
lea eax, [esi + 0xec0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 1
push 0x80
call fcn.00481ad0
mov eax, dword [esi + 0x608]
add eax, 6
add ebx, eax
mov dword [ebp - 0x520], ebx
jmp 0x481501
or dword [esi + 0x5c], 8
lea eax, [ebp - 0x20c]
push 0x208
push 0
push eax
call fcn.0059dbb0
push 0x103
lea eax, [esi + 0xdc]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.005b7dfc
xor eax, eax
push eax
mov dword [ebp - 0x534], eax
lea eax, [ebp - 0x20c]
push 0x5f32fc
push eax
call fcn.005b7e3d
mov edx, eax
add esp, 0x24
mov dword [ebp - 0x51c], edx
test edx, edx
je 0x481501
xor eax, eax
cmp eax, 4
jge 0x4814fb
mov ecx, edx
lea edi, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x481430
sub ecx, edi
lea eax, [ebp - 0x214]
push eax
sar ecx, 1
push ecx
push edx
push dword [ebp - 0x53c]
call dword [ebp - 0x530]
mov eax, dword [ebp - 0x214]
mov ecx, dword [ebp - 0x540]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x481471
add ecx, dword [esi + 0x7c]
mov edx, dword [ebp - 0x518]
mov eax, dword [esi + 0x80]
lea edi, [ecx + edx]
mov ecx, dword [ebp - 0x524]
add eax, ecx
push eax
push edi
push ecx
push edx
lea eax, [ebp - 0x31c]
push eax
call dword [ebp - 0x528]
push dword [ebp - 0x51c]
lea eax, [ebp - 0x31c]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x534]
add eax, 0x17
push eax
push 0x80
call fcn.00481ad0
push 0
lea eax, [edi + 6]
push 0x5f32fc
push 0
mov dword [ebp - 0x518], eax
mov ebx, eax
mov dword [ebp - 0x520], eax
call fcn.005b7e3d
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x534]
inc eax
mov dword [ebp - 0x51c], edx
mov dword [ebp - 0x534], eax
test edx, edx
jne 0x481420
mov edi, dword [ebp - 0x524]
cmp dword [ebp - 0x554], 0
je 0x48155b
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 - 0x528]
lea eax, [esi + 0xad8]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x12c
push 0x80
call fcn.00481ad0
mov eax, dword [esi + 0x5f4]
add eax, 6
add ebx, eax
mov dword [ebp - 0x520], ebx
cmp dword [esi + 0x54], 0
je 0x4815b6
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 - 0x528]
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.00481ad0
mov eax, dword [esi + 0x60c]
add eax, 6
add eax, ebx
mov dword [ebp - 0x520], eax
jmp 0x4815bc
mov edi, dword [ebp - 0x528]
mov ebx, dword [ebp - 0x52c]
cmp ebx, 0xffffffff
je 0x48161f
push dword [esi + 0x84]
lea eax, [ebp - 0x21c]
push dword [ebp - 0x538]
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 - 0x54c]
push eax
lea eax, [ebp - 0x520]
push eax
call fcn.00481900
mov eax, dword [ebp - 0x240]
mov edi, dword [ebp - 0x220]
cmp eax, edi
jl 0x481638
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 - 0x53c]
push dword [ebp - 0x55c]
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 - 0x548]
shl edi, 3
mov word [esi + 0x50e], ax
mov eax, edi
cdq
idiv dword [ebp - 0x544]
push ebx
mov word [esi + 0x510], ax
call dword [ebp - 0x558]
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.00599f9c
mov esp, ebp
pop ebp
ret 0x14