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

Disassembly:
push 0xffffffffffffffff
push 0x445dee
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x44eea4]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44eea4]
xor eax, esp
push eax
lea eax, [esp + 0x158]
mov dword fs:[0], eax
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x168]
mov ebx, dword [esp + 0x17c]
mov dword [esp + 0x1c], eax
mov eax, dword [0x44f874]
add eax, 1
and eax, 0x80000001
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
jns 0x41524e
dec eax
or eax, 0xfffffffe
inc eax
mov edi, 1
xor ebp, ebp
cmp dword [0x44d01c], edi
mov dword [0x44f874], eax
jne 0x4152d6
push 0x1f50
mov dword [0x44d01c], ebp
call fcn.004450ac
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov dword [esp + 0x160], ebp
je 0x415295
push ebp
push str.LF2_CURSOR2
push 0x40
mov ecx, eax
call fcn.0043ee50
jmp 0x415297
xor eax, eax
push 0x420
mov dword [esp + 0x164], 0xffffffff
mov dword [0x44f824], eax
call fcn.004450ac
mov edi, eax
add esp, 4
cmp edi, ebp
je 0x4152c9
mov ecx, edi
call fcn.004061d0
mov dword [edi + 0x368], esi
jmp 0x4152cb
xor edi, edi
mov dword [0x44f870], edi
mov edi, 1
push 0x22
call fcn.00415140
add esp, 4
test eax, eax
je 0x41530a
mov eax, dword [0x44f86c]
add eax, edi
cmp eax, 0x190
mov dword [0x44f86c], eax
jl 0x4152fe
xor eax, eax
mov dword [0x44f86c], eax
push eax
mov ecx, esi
call fcn.0040d940
test eax, eax
je 0x4152e4
push 0x21
call fcn.00415140
add esp, 4
test eax, eax
je 0x41533c
sub dword [0x44f86c], edi
jns 0x41532a
mov dword [0x44f86c], 0x18f
mov ecx, dword [0x44f86c]
push ecx
mov ecx, esi
call fcn.0040d940
test eax, eax
je 0x415318
push 0x41
call fcn.00415140
add esp, 4
test eax, eax
je 0x415360
mov eax, dword [0x44f868]
add eax, 1
cdq
mov ecx, 3
idiv ecx
mov dword [0x44f868], edx
push 0x53
call fcn.00415140
add esp, 4
test eax, eax
je 0x415376
push ebx
mov ecx, esi
call fcn.0040d0a0
push 0x4d
call fcn.00415140
add esp, 4
test eax, eax
je 0x415390
sub edi, dword [0x44f864]
mov dword [0x44f864], edi
push 0x4e
call fcn.00415140
add esp, 4
test eax, eax
je 0x4153b4
mov eax, dword [0x44f860]
add eax, 1
cdq
mov ecx, 5
idiv ecx
mov dword [0x44f860], edx
push 0xd
call fcn.00415140
mov ecx, dword [0x44f870]
add esp, 4
test eax, eax
je 0x4153d7
mov edx, dword [0x44f86c]
mov dword [ecx + 0x70], edx
mov dword [ecx + 0x88], ebp
push ebp
push ebp
call fcn.0040d960
mov eax, dword [0x44f860]
cmp eax, ebp
mov edi, dword [0x44f86c]
jne 0x41548e
push 0x26
call fcn.00415140
add esp, 4
test eax, eax
je 0x415416
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x7f8], 1
lea eax, [eax + esi + 0x7f8]
push 0x28
call fcn.00415140
add esp, 4
test eax, eax
je 0x41543b
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x7f8], 0xffffffff
lea eax, [ecx + esi + 0x7f8]
push 0x25
call fcn.00415140
add esp, 4
test eax, eax
je 0x415460
mov edx, edi
imul edx, edx, 0x178
add dword [edx + esi + 0x7f4], 1
lea eax, [edx + esi + 0x7f4]
push 0x27
call fcn.00415140
add esp, 4
test eax, eax
je 0x415882
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x7f4], 0xffffffff
lea eax, [eax + esi + 0x7f4]
jmp 0x415882
mov ebx, 1
cmp eax, ebx
jne 0x4155c9
push 0x43
call fcn.00415140
add esp, 4
test eax, eax
je 0x4154cb
mov ecx, edi
imul ecx, ecx, 0x178
mov eax, dword [ecx + esi + 0x82c]
lea ecx, [ecx + esi + 0x82c]
add eax, ebx
cdq
mov ebp, 3
idiv ebp
mov dword [ecx], edx
mov dl, 0x64
cmp byte [0x45539e], dl
jne 0x4154ec
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x834], 0xffffffff
lea eax, [eax + esi + 0x834]
cmp byte [0x4553a0], dl
jne 0x41550a
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x834], ebx
lea eax, [ecx + esi + 0x834]
cmp byte [0x45539d], dl
jne 0x415529
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x830], 0xffffffff
lea eax, [eax + esi + 0x830]
cmp byte [0x45539f], dl
jne 0x415547
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x830], ebx
lea eax, [ecx + esi + 0x830]
push 0xdb
call fcn.00415140
add esp, 4
test eax, eax
je 0x415582
mov edx, edi
imul edx, edx, 0x178
add dword [edx + esi + 0x840], 0xffffffff
cmp dword [edx + esi + 0x840], 0x82
lea eax, [edx + esi + 0x840]
jge 0x415582
mov dword [eax], 0x90
push 0xdd
call fcn.00415140
add esp, 4
test eax, eax
je 0x415882
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x840], ebx
cmp dword [eax + esi + 0x840], 0x90
lea eax, [eax + esi + 0x840]
jle 0x415882
mov dword [eax], 0x82
jmp 0x415882
cmp eax, 2
jne 0x41571f
push 0x57
call fcn.00415140
add esp, 4
test eax, eax
je 0x415607
mov ecx, edi
imul ecx, ecx, 0x178
mov eax, dword [ecx + esi + 0x87c]
lea ecx, [ecx + esi + 0x87c]
add eax, ebx
cdq
mov ebx, 3
idiv ebx
mov ebx, 1
mov dword [ecx], edx
mov edx, edi
imul edx, edx, 0x178
cmp dword [edx + esi + 0x880], ebp
lea ecx, [edx + esi]
jne 0x41564b
cmp dword [ecx + 0x884], ebp
jne 0x41564b
cmp edi, ebp
jle 0x41564b
mov eax, dword [ecx + 0x708]
mov dword [ecx + 0x880], eax
mov edx, dword [ecx + 0x70c]
mov dword [ecx + 0x884], edx
mov eax, dword [ecx + 0x710]
mov dword [ecx + 0x888], eax
mov dl, 0x64
cmp byte [0x45539e], dl
jne 0x41565c
add dword [ecx + 0x884], 0xffffffff
cmp byte [0x4553a0], dl
jne 0x41566a
add dword [ecx + 0x884], ebx
cmp byte [0x45539d], dl
jne 0x415679
add dword [ecx + 0x880], 0xffffffff
cmp byte [0x45539f], dl
jne 0x415687
add dword [ecx + 0x880], ebx
push 0xdb
call fcn.00415140
mov edx, dword [0x44f868]
add esp, 4
test eax, eax
mov ebx, 0x23
lea ebp, [ebx - 0xf]
je 0x4156d0
add dword [ecx + 0x888], 0xffffffff
cmp edx, 1
jne 0x4156be
mov dword [ecx + 0x888], 0xa
jmp 0x4156d0
test edx, edx
jne 0x4156d0
cmp dword [ecx + 0x888], ebp
jge 0x4156d0
mov dword [ecx + 0x888], ebx
push 0xdd
call fcn.00415140
add esp, 4
test eax, eax
je 0x415882
add dword [ecx + 0x888], 1
cmp edx, 1
jne 0x415700
mov dword [ecx + 0x888], 0xa
jmp 0x415882
test edx, edx
jne 0x415882
cmp dword [ecx + 0x888], ebx
jle 0x415882
mov dword [ecx + 0x888], ebp
jmp 0x415882
cmp eax, 3
jne 0x4157ad
mov dl, 0x64
cmp byte [0x45539e], dl
jne 0x415749
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x804], 0xffffffff
lea eax, [ecx + esi + 0x804]
cmp byte [0x4553a0], dl
jne 0x415767
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x804], ebx
lea eax, [eax + esi + 0x804]
cmp byte [0x45539d], dl
jne 0x415786
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x800], 0xffffffff
lea eax, [ecx + esi + 0x800]
cmp byte [0x45539f], dl
jne 0x415882
mov edx, edi
imul edx, edx, 0x178
add dword [edx + esi + 0x800], ebx
lea eax, [edx + esi + 0x800]
jmp 0x415882
cmp eax, 4
jne 0x415882
mov dl, 0x64
cmp byte [0x45539e], dl
jne 0x4157d7
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x828], 0xffffffff
lea eax, [eax + esi + 0x828]
cmp byte [0x4553a0], dl
jne 0x4157f5
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x828], ebx
lea eax, [ecx + esi + 0x828]
cmp byte [0x45539d], dl
jne 0x415814
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x824], 0xffffffff
lea eax, [eax + esi + 0x824]
cmp byte [0x45539f], dl
jne 0x415832
mov ecx, edi
imul ecx, ecx, 0x178
add dword [ecx + esi + 0x824], ebx
lea eax, [ecx + esi + 0x824]
push 0x42
call fcn.00415140
add esp, 4
test eax, eax
je 0x415882
mov edx, edi
imul edx, edx, 0x178
cmp dword [edx + esi + 0x824], ebp
lea eax, [edx + esi]
je 0x41585c
mov dword [eax + 0x824], ebp
jmp 0x415882
cmp edi, ebp
mov dword [eax + 0x824], ebx
jle 0x415882
mov ecx, dword [eax + 0x6ac]
cmp ecx, ebp
jle 0x415882
mov dword [eax + 0x824], ecx
mov ecx, dword [eax + 0x6b0]
mov dword [eax + 0x828], ecx
push 0x6b
call fcn.00415140
add esp, 4
test eax, eax
je 0x4158a7
mov edx, edi
imul edx, edx, 0x178
add dword [edx + esi + 0x7b0], 1
lea eax, [edx + esi + 0x7b0]
push 0x6d
call fcn.00415140
add esp, 4
test eax, eax
je 0x4158d4
mov eax, edi
imul eax, eax, 0x178
add dword [eax + esi + 0x7b0], 0xffffffff
lea eax, [eax + esi + 0x7b0]
jne 0x4158d4
xor ebp, ebp
mov dword [eax], ebp
jmp 0x4158d6
xor ebp, ebp
mov eax, dword [0x44f864]
cmp eax, ebp
jne 0x415aed
push 0x2d
call fcn.00415140
add esp, 4
test eax, eax
je 0x415990
mov ecx, edi
imul ecx, ecx, 0x178
lea ebx, [ecx + esi]
mov eax, 1
add dword [ebx + 0x8cc], eax
cmp dword [ebx + 0x8cc], eax
jne 0x415927
push 0x190
call dword [0x447194]
add esp, 4
mov dword [ebx + 0x8d4], eax
mov eax, dword [ebx + 0x8cc]
xor ecx, ecx
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x8d4]
shl edx, 4
lea eax, [edx + eax - 0x50]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], ecx
mov dword [eax + 0x38], ecx
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], ecx
mov ecx, 0xa
mov dword [eax + 8], ebp
mov dword [eax + 4], ebp
mov dword [eax], ebp
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov ebx, dword [ebx + 0x8cc]
sub ebx, 1
mov dword [0x44f85c], ebx
jmp 0x415996
mov ebx, dword [0x44f85c]
push 0x2e
call fcn.00415140
add esp, 4
test eax, eax
je 0x415aa5
mov ecx, edi
imul ecx, ecx, 0x178
mov eax, dword [ecx + esi + 0x8cc]
add ecx, esi
cmp eax, ebp
jle 0x415aa5
lea edx, [eax - 1]
cmp ebx, edx
jge 0x415a93
cmp ebx, eax
mov dword [esp + 0x14], ebx
jge 0x415a9c
lea edx, [ebx + ebx*4]
shl edx, 4
mov edi, edi
mov eax, dword [ecx + 0x8d4]
add eax, edx
mov ebp, dword [eax + 0x50]
mov dword [eax], ebp
mov ebp, dword [eax + 0x54]
mov dword [eax + 4], ebp
mov ebp, dword [eax + 0x58]
mov dword [eax + 8], ebp
mov ebp, dword [eax + 0x5c]
mov dword [eax + 0xc], ebp
mov ebp, dword [eax + 0x60]
mov dword [eax + 0x10], ebp
mov ebp, dword [eax + 0x64]
mov dword [eax + 0x14], ebp
mov ebp, dword [eax + 0x68]
mov dword [eax + 0x18], ebp
mov ebp, dword [eax + 0x6c]
mov dword [eax + 0x1c], ebp
mov ebp, dword [eax + 0x70]
mov dword [eax + 0x20], ebp
mov ebp, dword [eax + 0x74]
mov dword [eax + 0x24], ebp
mov ebp, dword [eax + 0x78]
mov dword [eax + 0x28], ebp
mov ebp, dword [eax + 0x7c]
mov dword [eax + 0x2c], ebp
mov ebp, dword [eax + 0x80]
mov dword [eax + 0x30], ebp
mov ebp, dword [eax + 0x84]
mov dword [eax + 0x34], ebp
mov ebp, dword [eax + 0x88]
mov dword [eax + 0x38], ebp
mov ebp, dword [eax + 0x8c]
mov dword [eax + 0x3c], ebp
mov ebp, dword [eax + 0x90]
mov dword [eax + 0x40], ebp
mov ebp, dword [eax + 0x94]
mov dword [eax + 0x44], ebp
mov ebp, dword [eax + 0x98]
mov dword [eax + 0x48], ebp
mov ebp, dword [eax + 0x9c]
mov dword [eax + 0x4c], ebp
mov eax, dword [esp + 0x14]
add eax, 1
add edx, 0x50
cmp eax, dword [ecx + 0x8cc]
mov dword [esp + 0x14], eax
jl 0x4159e0
jmp 0x415a9c
sub ebx, 1
mov dword [0x44f85c], ebx
add dword [ecx + 0x8cc], 0xffffffff
xor ebp, ebp
push 0x4b
call fcn.00415140
add esp, 4
test eax, eax
je 0x415c80
mov eax, edi
imul eax, eax, 0x178
add eax, esi
cmp dword [eax + 0x8cc], ebp
jle 0x415c80
lea ebx, [ebx + ebx*4]
shl ebx, 4
add ebx, dword [eax + 0x8d4]
mov ecx, 7
mov eax, dword [ebx]
add eax, 1
cdq
idiv ecx
mov dword [ebx], edx
jmp 0x415c80
cmp eax, 1
jne 0x415c80
push 0x2d
call fcn.00415140
add esp, 4
test eax, eax
je 0x415b7e
lea edx, [edi + 6]
imul edx, edx, 0x178
add dword [edx + esi], 1
cmp dword [edx + esi], 1
lea ebx, [edx + esi]
jne 0x415b37
push 0xc8
call dword [0x447194]
mov ecx, edi
add esp, 4
imul ecx, ecx, 0x178
mov dword [ecx + esi + 0x8d8], eax
mov eax, dword [ebx]
mov edx, edi
imul edx, edx, 0x178
mov ecx, dword [edx + esi + 0x8d8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8 - 0x28]
mov dword [eax + 0x14], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x1c], ebp
mov dword [eax + 0x20], ebp
mov dword [eax + 0x24], ebp
mov ecx, 0xa
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ebp
mov dword [eax + 4], ebp
mov dword [eax], ebp
mov ecx, dword [ebx]
sub ecx, 1
mov dword [0x44f858], ecx
jmp 0x415b84
mov ecx, dword [0x44f858]
push 0x2e
call fcn.00415140
add esp, 4
test eax, eax
je 0x415c3b
lea edx, [edi + 6]
imul edx, edx, 0x178
lea eax, [edx + esi]
mov edx, dword [eax]
cmp edx, ebp
mov dword [esp + 0x14], eax
jle 0x415c3b
lea ebx, [edx - 1]
cmp ecx, ebx
jge 0x415c2d
cmp ecx, edx
mov ebx, ecx
jge 0x415c36
mov eax, edi
imul eax, eax, 0x178
lea edx, [eax + esi + 0x8d8]
mov dword [esp + 0x18], edx
lea edx, [ecx + ecx*4]
add edx, edx
add edx, edx
add edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [eax + edx + 0x28]
add eax, edx
mov dword [eax], ebp
mov ebp, dword [eax + 0x2c]
mov dword [eax + 4], ebp
mov ebp, dword [eax + 0x30]
mov dword [eax + 8], ebp
mov ebp, dword [eax + 0x34]
mov dword [eax + 0xc], ebp
mov ebp, dword [eax + 0x38]
mov dword [eax + 0x10], ebp
mov ebp, dword [eax + 0x3c]
mov dword [eax + 0x14], ebp
mov ebp, dword [eax + 0x40]
mov dword [eax + 0x18], ebp
mov ebp, dword [eax + 0x44]
mov dword [eax + 0x1c], ebp
mov ebp, dword [eax + 0x48]
mov dword [eax + 0x20], ebp
mov ebp, dword [eax + 0x4c]
mov dword [eax + 0x24], ebp
mov eax, dword [esp + 0x14]
add ebx, 1
add edx, 0x28
cmp ebx, dword [eax]
jl 0x415bd9
jmp 0x415c36
sub ecx, 1
mov dword [0x44f858], ecx
add dword [eax], 0xffffffff
xor ebp, ebp
push 0x4b
call fcn.00415140
add esp, 4
test eax, eax
je 0x415c80
lea edx, [edi + 6]
imul edx, edx, 0x178
cmp dword [edx + esi], ebp
jle 0x415c80
mov eax, edi
imul eax, eax, 0x178
mov edx, dword [eax + esi + 0x8d8]
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
add ecx, 1
and ecx, 0x80000003
jns 0x415c7e
dec ecx
or ecx, 0xfffffffc
inc ecx
mov dword [eax], ecx
mov edx, edi
imul edx, edx, 0x178
cmp dword [edx + esi + 0x7f4], ebp
lea ebx, [edx + esi]
jne 0x415cde
cmp dword [ebx + 0x7f8], ebp
jne 0x415cde
push edi
mov ecx, esi
call fcn.0040bf30
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [0x44f86c]
mov edx, eax
imul edx, edx, 0x178
sar ecx, 1
mov dword [edx + esi + 0x7f4], ecx
mov ecx, eax
imul ecx, ecx, 0x178
lea ebx, [ecx + esi]
push eax
mov ecx, esi
call fcn.0040bfb0
mov edi, dword [0x44f86c]
mov dword [ebx + 0x7f8], eax
mov edx, dword [0x455608]
push edx
push ebp
push ebp
push ebp
mov eax, 0xc8
sub eax, dword [ebx + 0x7f8]
push edi
mov ecx, 0xc8
sub ecx, dword [ebx + 0x7f4]
push eax
push ecx
mov ecx, esi
call fcn.0040be70
mov eax, dword [0x44f86c]
mov edi, dword [0x447174]
mov edx, eax
imul edx, edx, 0x178
lea ecx, [edx + esi + 0x900]
push ecx
push eax
lea edx, [esp + 0x30]
push str._d____s
push edx
call edi
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
mov ecx, 0xa6
sub ecx, dword [eax + 0x7f8]
mov edx, 0xc8
sub edx, dword [eax + 0x7f4]
push ecx
mov ecx, dword [0x455608]
push edx
push 0xffffff
push ebp
lea eax, [esp + 0x48]
push eax
push ecx
call fcn.00401290
mov edx, dword [0x44f86c]
imul edx, edx, 0x178
mov ecx, dword [edx + esi + 0x7b4]
lea eax, [edx + esi]
mov edx, dword [eax + 0x7b0]
push ecx
push edx
lea eax, [esp + 0x58]
push str.wait:__d___next:__d
push eax
call edi
mov ecx, dword [0x44f86c]
imul ecx, ecx, 0x178
lea eax, [ecx + esi]
mov edx, 0xb7
sub edx, dword [eax + 0x7f8]
mov ecx, 0xc8
sub ecx, dword [eax + 0x7f4]
mov eax, dword [0x455608]
push edx
push ecx
push 0xffffff
push ebp
lea edx, [esp + 0x70]
push edx
push eax
call fcn.00401290
mov ecx, dword [0x44f870]
mov eax, dword [ecx + 0x70]
add esp, 0x50
mov edx, eax
imul edx, edx, 0x178
lea ecx, [edx + esi]
mov edx, dword [0x455608]
push edx
push ebp
push ebp
push ebp
push eax
mov eax, 0xc8
sub eax, dword [ecx + 0x7f8]
mov edx, 0x190
sub edx, dword [ecx + 0x7f4]
push eax
push edx
mov ecx, esi
call fcn.0040be70
mov ebx, dword [0x44f86c]
mov eax, ebx
imul eax, eax, 0x178
mov edi, dword [eax + esi + 0x8cc]
cmp edi, ebp
lea ecx, [eax + esi]
jle 0x415f46
cmp dword [0x44f864], ebp
jne 0x415f46
cmp dword [0x4527e4], 1
jne 0x415e62
cmp dword [0x44f854], ebp
jne 0x415e62
mov eax, dword [0x44f85c]
add eax, 1
cdq
idiv edi
mov dword [0x44f85c], edx
cmp dword [0x457580], 1
jne 0x415f30
mov eax, dword [0x44f850]
cmp eax, ebp
jne 0x415e93
mov edx, dword [0x4546f0]
mov eax, dword [0x453cdc]
mov dword [0x44f84c], edx
mov dword [0x44f848], eax
jmp 0x415f30
cmp eax, 1
jne 0x415f30
mov eax, dword [0x4546f0]
mov edx, dword [0x44f84c]
cmp edx, eax
mov edi, dword [0x453cdc]
mov dword [0x44f844], eax
mov dword [0x44f840], edi
jle 0x415ec6
sub edx, eax
mov ebp, eax
mov dword [esp + 0x14], edx
jmp 0x415ece
sub eax, edx
mov ebp, edx
mov dword [esp + 0x14], eax
mov eax, dword [0x44f848]
cmp eax, edi
jle 0x415ee1
sub eax, edi
mov edx, edi
mov dword [esp + 0x18], eax
jmp 0x415ee9
sub edi, eax
mov edx, eax
mov dword [esp + 0x18], edi
mov eax, dword [0x44f85c]
mov edi, dword [ecx + 0x7f4]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [ecx + 0x8d4]
lea edi, [edi + ebp - 0xc8]
mov dword [eax + 4], edi
mov edi, dword [ecx + 0x7f8]
lea edx, [edi + edx - 0xc8]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x14]
add edx, 1
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x18]
add edx, 1
mov dword [eax + 0x10], edx
xor ebp, ebp
mov eax, dword [0x457580]
mov edx, dword [0x4527e4]
mov dword [0x44f850], eax
mov dword [0x44f854], edx
lea eax, [ebx + 6]
imul eax, eax, 0x178
mov edi, dword [eax + esi]
cmp edi, ebp
jle 0x416075
mov eax, 1
cmp dword [0x44f864], eax
jne 0x416075
cmp dword [0x4527e4], eax
jne 0x415f8c
cmp dword [0x44f83c], ebp
jne 0x415f8c
mov eax, dword [0x44f858]
add eax, 1
cdq
idiv edi
mov dword [0x44f858], edx
cmp dword [0x457580], 1
jne 0x41605a
mov eax, dword [0x44f838]
cmp eax, ebp
jne 0x415fbf
mov ecx, dword [0x4546f0]
mov edx, dword [0x453cdc]
mov dword [0x44f834], ecx
mov dword [0x44f830], edx
jmp 0x41605a
cmp eax, 1
jne 0x41605a
mov eax, dword [0x4546f0]
mov edx, dword [0x44f834]
cmp edx, eax
mov edi, dword [0x453cdc]
mov dword [0x44f82c], eax
mov dword [0x44f828], edi
jle 0x415ff2
sub edx, eax
mov ebp, eax
mov dword [esp + 0x18], edx
jmp 0x415ffa
sub eax, edx
mov ebp, edx
mov dword [esp + 0x18], eax
mov eax, dword [0x44f830]
cmp eax, edi
jle 0x41600d
sub eax, edi
mov edx, edi
mov dword [esp + 0x14], eax
jmp 0x416015
sub edi, eax
mov edx, eax
mov dword [esp + 0x14], edi
mov edi, dword [ecx + 0x8d8]
mov eax, dword [0x44f858]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [ecx + 0x7f4]
lea edi, [edi + ebp - 0xc8]
mov dword [eax + 4], edi
mov ecx, dword [ecx + 0x7f8]
lea edx, [ecx + edx - 0xc8]
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x14]
add ecx, 1
add edx, 1
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov eax, dword [0x457580]
mov ecx, dword [0x4527e4]
mov dword [0x44f838], eax
mov dword [0x44f83c], ecx
jmp 0x416263
cmp dword [0x44f864], ebp
jne 0x416263
mov eax, dword [0x44f860]
cmp eax, 2
je 0x416359
cmp eax, 4
je 0x416263
cmp edi, ebp
mov dword [esp + 0x14], ebp
jle 0x416181
xor ebp, ebp
jmp 0x4160b0
mov edx, ebx
imul edx, edx, 0x178
mov edi, dword [edx + esi + 0x8d8]
lea eax, [edx + esi]
add edi, ebp
cmp dword [0x44f874], 0
jle 0x41615f
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
push 0xff
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc8
push ecx
add edx, 0xc8
push edx
call fcn.00415160
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x416159
mov eax, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x178
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0x90
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + esi + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00415160
add esp, 0x14
mov ebx, dword [0x44f86c]
mov eax, dword [esp + 0x14]
lea ecx, [ebx + 6]
imul ecx, ecx, 0x178
add eax, 1
add ebp, 0x28
cmp eax, dword [ecx + esi]
mov dword [esp + 0x14], eax
jl 0x4160b0
xor ebp, ebp
lea edx, [ebx + 6]
imul edx, edx, 0x178
cmp dword [edx + esi], ebp
jle 0x416263
cmp dword [0x44f864], 1
jne 0x416263
cmp dword [0x44f860], 2
je 0x416359
mov ecx, dword [0x44f858]
mov eax, ebx
imul eax, eax, 0x178
mov edx, dword [eax + esi + 0x8d8]
add eax, esi
cmp dword [0x44f874], ebp
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
jle 0x416263
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
push 0xffffff
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc8
push ecx
add edx, 0xc8
push edx
call fcn.00415160
add esp, 0x14
cmp dword [0x44f874], ebp
jle 0x41625d
mov eax, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x178
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0xc8
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + esi + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00415160
add esp, 0x14
mov ebx, dword [0x44f86c]
mov eax, dword [0x44f860]
cmp eax, 2
je 0x416359
cmp eax, 4
je 0x416359
mov eax, ebx
imul eax, eax, 0x178
xor ebp, ebp
add eax, esi
cmp dword [eax + 0x8cc], ebp
jle 0x416359
mov dword [esp + 0x14], ebp
mov edi, dword [eax + 0x8d4]
add edi, dword [esp + 0x14]
cmp dword [0x44f874], 0
jle 0x41633b
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
push 0xff0000
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc8
push ecx
add edx, 0xc8
push edx
call fcn.00415160
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x416335
mov eax, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x178
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0x900000
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + esi + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00415160
add esp, 0x14
mov ebx, dword [0x44f86c]
add dword [esp + 0x14], 0x50
mov eax, ebx
imul eax, eax, 0x178
add ebp, 1
add eax, esi
cmp ebp, dword [eax + 0x8cc]
jl 0x416296
mov ecx, ebx
imul ecx, ecx, 0x178
cmp dword [ecx + esi + 0x8cc], 0
lea eax, [ecx + esi]
jle 0x416444
cmp dword [0x44f864], 0
jne 0x416444
mov ecx, dword [0x44f860]
cmp ecx, 2
je 0x41662e
cmp ecx, 4
je 0x41662e
mov edi, dword [0x44f85c]
lea edi, [edi + edi*4]
shl edi, 4
add edi, dword [eax + 0x8d4]
cmp dword [0x44f874], 0
jle 0x41662e
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push 0xffffff
push edx
mov edx, dword [edi + 8]
sub edx, dword [eax + 0x7f8]
push ecx
mov ecx, dword [edi + 4]
sub ecx, dword [eax + 0x7f4]
add edx, 0xc8
push edx
add ecx, 0xc8
push ecx
call fcn.00415160
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x41643e
mov edx, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul edx, edx, 0x178
lea eax, [edx + esi]
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0xc80000
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00415160
add esp, 0x14
mov ebx, dword [0x44f86c]
cmp dword [0x44f864], 1
jne 0x41662e
mov eax, dword [0x44f860]
cmp eax, 2
je 0x41662e
cmp eax, 4
je 0x41662e
lea eax, [ebx + 6]
imul eax, eax, 0x178
cmp dword [eax + esi], 0
mov dword [esp + 0x14], 0
jle 0x41655f
xor ebp, ebp
jmp 0x416490
mov ecx, ebx
imul ecx, ecx, 0x178
mov edi, dword [ecx + esi + 0x8d8]
lea eax, [ecx + esi]
add edi, ebp
cmp dword [0x44f874], 0
jle 0x41653f
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push 0xff
push edx
mov edx, dword [edi + 8]
sub edx, dword [eax + 0x7f8]
push ecx
mov ecx, dword [edi + 4]
sub ecx, dword [eax + 0x7f4]
add edx, 0xc8
push edx
add ecx, 0xc8
push ecx
call fcn.00415160
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x416539
mov edx, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul edx, edx, 0x178
lea eax, [edx + esi]
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0x90
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + 0x7f4]
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00415160
add esp, 0x14
mov ebx, dword [0x44f86c]
mov eax, dword [esp + 0x14]
lea ecx, [ebx + 6]
imul ecx, ecx, 0x178
add eax, 1
add ebp, 0x28
cmp eax, dword [ecx + esi]
mov dword [esp + 0x14], eax
jl 0x416490
lea edx, [ebx + 6]
imul edx, edx, 0x178
cmp dword [edx + esi], 0
jle 0x41662e
cmp dword [0x44f864], 1
jne 0x41662e
mov eax, dword [0x44f858]
imul ebx, ebx, 0x178
mov ecx, dword [ebx + esi + 0x8d8]
add ebx, esi
cmp dword [0x44f874], 0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jle 0x41662e
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 8]
sub ecx, dword [ebx + 0x7f8]
mov eax, dword [edi + 0xc]
push 0xffffff
push edx
mov edx, dword [edi + 4]
sub edx, dword [ebx + 0x7f4]
push eax
add ecx, 0xc8
push ecx
add edx, 0xc8
push edx
call fcn.00415160
add esp, 0x14
cmp dword [0x44f874], 0
jle 0x41662e
mov eax, dword [0x44f86c]
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x178
mov edx, dword [edi + 0xc]
sub ecx, 2
push 0xc8
push ecx
mov ecx, dword [edi + 8]
sub ecx, dword [eax + esi + 0x7f8]
sub edx, 2
push edx
mov edx, dword [edi + 4]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
add ecx, 0xc9
push ecx
add edx, 0xc9
push edx
call fcn.00415160
add esp, 0x14
mov eax, dword [0x455608]
mov ecx, dword [0x453cdc]
mov edx, dword [0x4546f0]
push eax
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xfffffff6
push ecx
mov ecx, dword [0x44f824]
add edx, 0xfffffff6
push edx
call fcn.0043f010
cmp dword [0x44f864], 0
mov eax, dword [0x44f86c]
jne 0x4166a8
imul eax, eax, 0x178
mov edx, dword [eax + esi + 0x8cc]
test edx, edx
lea ecx, [eax + esi]
jle 0x4166ea
mov eax, dword [0x44f85c]
mov ecx, dword [ecx + 0x8d4]
mov edi, dword [0x447174]
lea eax, [eax + eax*4]
shl eax, 4
mov eax, dword [ecx + eax]
push eax
push edx
lea ecx, [esp + 0x30]
push str.itr_mode___no:__d___kind:__d
push ecx
call edi
add esp, 0x10
jmp 0x4166f0
lea edx, [eax + 6]
imul edx, edx, 0x178
mov edx, dword [edx + esi]
test edx, edx
jle 0x4166ea
mov ecx, dword [0x44f858]
imul eax, eax, 0x178
mov eax, dword [eax + esi + 0x8d8]
mov edi, dword [0x447174]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*8]
push ecx
push edx
lea edx, [esp + 0x30]
push str.bdy_mode___no:__d___kind:__d
push edx
call edi
add esp, 0x10
jmp 0x4166f0
mov edi, dword [0x447174]
mov ecx, dword [0x455608]
push 0x32
push 0
push 0xffffff
push 0
lea eax, [esp + 0x38]
push eax
push ecx
call fcn.00401290
add esp, 0x18
cmp dword [0x44f860], 1
jne 0x416756
mov edx, dword [0x44f86c]
imul edx, edx, 0x178
mov eax, dword [edx + esi + 0x82c]
push eax
lea ecx, [esp + 0x2c]
push str.cpoint:__d
push ecx
call edi
mov eax, dword [0x455608]
push 0x46
push 0
push 0xffffff
push 0
lea edx, [esp + 0x44]
push edx
push eax
call fcn.00401290
add esp, 0x24
mov ebp, 2
cmp dword [0x44f860], ebp
jne 0x4167ab
mov ecx, dword [0x44f86c]
imul ecx, ecx, 0x178
mov edx, dword [ecx + esi + 0x888]
lea eax, [ecx + esi]
mov eax, dword [eax + 0x87c]
push edx
push eax
lea ecx, [esp + 0x30]
push str.wpoint:__d___d
push ecx
call edi
mov eax, dword [0x455608]
push 0x46
push 0
push 0xffffff
push 0
lea edx, [esp + 0x48]
push edx
push eax
call fcn.00401290
add esp, 0x28
cmp dword [0x44f860], 3
jne 0x4167f3
mov ecx, dword [0x44f86c]
imul ecx, ecx, 0x178
mov edx, dword [ecx + esi + 0x7fc]
push edx
lea eax, [esp + 0x2c]
push str.opoint:__d
push eax
call edi
mov edx, dword [0x455608]
push 0x46
push 0
push 0xffffff
push 0
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.00401290
add esp, 0x24
cmp dword [0x44f860], 4
jne 0x416844
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
mov ecx, dword [eax + esi + 0x828]
mov edx, dword [eax + esi + 0x824]
add eax, esi
push ecx
push edx
lea eax, [esp + 0x30]
push str.bpoint:__d___d
push eax
call edi
mov edx, dword [0x455608]
push 0x46
push 0
push 0xffffff
push 0
lea ecx, [esp + 0x48]
push ecx
push edx
call fcn.00401290
add esp, 0x28
push 0xa514
push 1
push 0xd
push 0xc8
push 0xc2
call fcn.00415160
push 0xa514
push 0xd
push 1
push 0xc2
push 0xc8
call fcn.00415160
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
add esp, 0x28
cmp dword [eax + 0x7fc], 0
je 0x41690d
mov ecx, dword [eax + 0x804]
sub ecx, dword [eax + 0x7f8]
mov edx, dword [eax + 0x800]
sub edx, dword [eax + 0x7f4]
push 0xf800
push 1
push 0xd
add ecx, 0xc8
push ecx
add edx, 0xc2
push edx
call fcn.00415160
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
mov ecx, dword [eax + esi + 0x804]
sub ecx, dword [eax + esi + 0x7f8]
mov edx, dword [eax + esi + 0x800]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
push 0xf800
push 0xd
push 1
add ecx, 0xc2
push ecx
add edx, 0xc8
push edx
call fcn.00415160
add esp, 0x28
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
cmp dword [eax + 0x82c], 0
lea ebx, [eax + 0x82c]
je 0x416abf
mov ecx, dword [eax + 0x834]
sub ecx, dword [eax + 0x7f8]
mov edx, dword [eax + 0x830]
sub edx, dword [eax + 0x7f4]
push 0x7e0
push 1
push 0xd
add ecx, 0xc8
push ecx
add edx, 0xc2
push edx
call fcn.00415160
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
mov ecx, dword [eax + esi + 0x834]
sub ecx, dword [eax + esi + 0x7f8]
mov edx, dword [eax + esi + 0x830]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
push 0x7e0
push 0xd
push 1
add ecx, 0xc2
push ecx
add edx, 0xc8
push edx
call fcn.00415160
mov eax, dword [ebx + 0x14]
imul eax, eax, 0x178
add esp, 0x28
cmp dword [eax + esi + 0x82c], ebp
jne 0x416abf
mov ecx, dword [ebx + 0x10]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x44f86c]
imul edx, edx, 0x178
cmp ecx, 1
lea eax, [edx + esi]
mov ecx, esi
jne 0x416a57
mov edi, dword [eax + 0x830]
mov ebp, dword [eax + 0x834]
sub edi, dword [eax + 0x7f4]
sub ebp, dword [eax + 0x7f8]
mov eax, dword [ebx + 0x14]
push eax
add edi, 0xc8
add ebp, 0xc8
call fcn.0040bf30
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x14]
imul ecx, ecx, 0x178
sub edi, dword [ecx + esi + 0x830]
push edx
mov ecx, esi
sub edi, eax
call fcn.0040bf30
mov ecx, dword [0x455608]
mov ebx, dword [ebx + 0x14]
push ecx
push 0
push 0
push 1
push ebx
imul ebx, ebx, 0x178
add eax, edi
sub ebp, dword [ebx + esi + 0x834]
push ebp
push eax
jmp 0x416ab8
mov ebp, dword [eax + 0x830]
mov edi, dword [eax + 0x834]
sub ebp, dword [eax + 0x7f4]
sub edi, dword [eax + 0x7f8]
mov eax, dword [ebx + 0x14]
push eax
add ebp, 0xc8
add edi, 0xc8
call fcn.0040bf30
mov edx, dword [0x455608]
mov ecx, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x14]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + esi + 0x830]
push edx
push 0
push 1
push 1
push ebx
imul ebx, ebx, 0x178
add ecx, ebp
sub ecx, eax
sub edi, dword [ebx + esi + 0x834]
push edi
push ecx
mov ecx, esi
call fcn.0040be70
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
mov ecx, dword [eax + 0x87c]
test ecx, ecx
lea edi, [eax + 0x87c]
je 0x416be3
cmp ecx, 2
jne 0x416b5b
mov ecx, dword [eax + 0x884]
sub ecx, dword [eax + 0x7f8]
mov edx, dword [eax + 0x880]
sub edx, dword [eax + 0x7f4]
push 0x1f
push 1
push 0xd
add ecx, 0xc8
push ecx
add edx, 0xc2
push edx
call fcn.00415160
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
mov ecx, dword [eax + esi + 0x884]
sub ecx, dword [eax + esi + 0x7f8]
mov edx, dword [eax + esi + 0x880]
sub edx, dword [eax + esi + 0x7f4]
add eax, esi
push 0x1f
push 0xd
push 1
add ecx, 0xc2
push ecx
add edx, 0xc8
push edx
call fcn.00415160
add esp, 0x28
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add eax, esi
cmp dword [eax + 0x87c], 1
jne 0x416be3
mov ecx, dword [0x44f868]
test ecx, ecx
jne 0x416b81
mov edx, dword [esp + 0x1c]
jmp 0x416b8e
cmp ecx, 1
mov edx, dword [esp + 0x24]
je 0x416b8e
mov edx, dword [esp + 0x20]
mov edi, dword [edi + 0xc]
mov ebx, dword [0x455608]
mov ecx, edi
push ebx
imul ecx, ecx, 0x178
push 0
push 0
push 1
push edi
mov edi, dword [eax + 0x884]
sub edi, dword [ecx + edx + 0x884]
add ecx, edx
sub edi, dword [eax + 0x7f8]
add edi, 0xc8
push edi
mov edi, dword [eax + 0x880]
sub edi, dword [ecx + 0x880]
mov ecx, edx
sub edi, dword [eax + 0x7f4]
add edi, 0xc8
push edi
call fcn.0040be70
mov eax, dword [0x44f86c]
imul eax, eax, 0x178
add esi, eax
mov eax, dword [esi + 0x824]
test eax, eax
je 0x416c2a
mov edx, dword [esi + 0x828]
sub edx, dword [esi + 0x7f8]
sub eax, dword [esi + 0x7f4]
push 0xf800
push 3
push 1
add edx, 0xc8
push edx
add eax, 0xc8
push eax
call fcn.00415160
add esp, 0x14
mov eax, dword [0x458348]
push eax
call fcn.0043e940
add esp, 4
mov ecx, dword [esp + 0x158]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.004450b2
add esp, 0x150
ret 0x18