Function at 0x41aaf0
Capabilities:
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
push ebx
push esi
push edi
mov edi, ecx
mov esi, dword [edi + 0x108]
xor ebx, ebx
cmp esi, ebx
mov dword [ebp - 0x40], edi
je 0x41ab5e
mov ecx, dword [esi + 4]
cmp ecx, ebx
je 0x41ab5e
call fcn.006b6e20
cmp eax, 2
je 0x41ab2b
mov ecx, dword [esi + 4]
call fcn.006b6e20
cmp eax, 3
jne 0x41ab5e
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
jne 0x41ab5e
mov eax, dword [eax + 0xc0]
fld dword [eax + 0x34]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x40
je 0x41ab5e
pop edi
pop esi
mov byte [0x776d10], 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [0x776d10], 1
jne 0x41ab6e
mov byte [0x776d10], 0
mov ecx, 0x7cb478
call fcn.004d51b0
mov esi, eax
mov dword [ebp - 0x2c], esi
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov ecx, dword [0x7c67dc]
cmp eax, dword [ecx + 0xc8]
je 0x41aba5
mov edx, dword [0x7c67e0]
mov al, byte [edx + 0xb4dd]
test al, al
je 0x41be81
mov edx, dword [0x7c67e0]
call fcn.0041c774
call fcn.0040f610
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0xf4]
mov edx, dword [ecx]
call dword [edx + 0x54]
test al, al
jne 0x41ac08
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
test eax, eax
je 0x41abf5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
test al, al
jne 0x41abf5
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0x94]
test cl, cl
je 0x41ac08
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0xf4]
mov edx, dword [ecx]
push 1
call dword [edx + 0x50]
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0x23
call fcn.00406f40
test eax, eax
je 0x41ac40
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
je 0x41ac3b
mov ecx, dword [eax + 0x4c]
push 1
push ebx
call fcn.00406a80
test eax, eax
jne 0x41ac40
call fcn.005b2d90
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
test eax, eax
je 0x41add8
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov cl, byte [eax + 0x5b0]
test cl, cl
jne 0x41add8
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
jne 0x41add8
mov ecx, dword [eax + 0x4c]
push 2
push 0x14
call fcn.00406f40
test eax, eax
je 0x41add8
xor bl, bl
call fcn.00595e20
mov ecx, dword [0x7c67dc]
mov byte [ebp - 0x11], bl
call fcn.0040ff20
mov ecx, dword [eax + 0x234]
test ecx, ecx
je 0x41acdc
call fcn.004e5460
test eax, eax
je 0x41acdc
mov eax, dword [eax + 0x14]
test eax, eax
je 0x41acdc
add eax, 0x10
push str.lava
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x41acdc
mov byte [ebp - 0x11], 1
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, eax
call fcn.00529540
test al, al
jne 0x41ad2b
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
xor ecx, ecx
mov cx, word [eax + 8]
shr ecx, 0xd
test cl, 1
jne 0x41ad2b
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
xor edx, edx
mov dx, word [eax + 8]
shr edx, 0xc
test dl, 1
jne 0x41ad2b
mov al, byte [ebp - 0x11]
test al, al
je 0x41ad4a
mov ecx, dword [0x7c67dc]
push 1
push 0
push 0x1fb
call fcn.0040f930
push eax
call fcn.005f90c0
add esp, 0xc
mov bl, 1
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x5c]
mov ecx, dword [ecx + 0x24]
call fcn.0056f810
test al, al
jne 0x41ad7d
mov ecx, dword [0x7c67dc]
push 1
push 0
push 0x1fc
call fcn.0040f930
push eax
call fcn.005f90c0
add esp, 0xc
mov bl, 1
mov ecx, dword [0x7c67e0]
call fcn.0048e350
test byte [eax + 0x18], 4
je 0x41ad92
test bl, bl
je 0x41adac
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov edx, dword [eax + 0x10]
shr edx, 0xa
test dl, 1
je 0x41adb0
test bl, bl
jne 0x41adbe
push 0
jmp 0x41adb6
test bl, bl
jne 0x41adbe
push 1
call fcn.00610170
add esp, 4
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov esi, dword [ebp - 0x2c]
mov dword [eax + 0x688], 0
xor ebx, ebx
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0x15
call fcn.00406f40
test eax, eax
je 0x41ae73
mov ecx, dword [0x7c67dc]
mov edx, dword [ecx + 0xc0]
fld dword [edx + 0x34]
fcomp dword [0x7464b8]
fnstsw ax
test ah, 0x40
je 0x41ae73
call fcn.0040ff20
mov eax, dword [eax + 0x10]
shr eax, 0xa
test al, 1
je 0x41ae47
mov ecx, dword [0x7c67dc]
push 0x24e
call fcn.0040f930
push eax
push 0x775998
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
push 1
push ebx
push esi
call fcn.005f90c0
add esp, 0x18
jmp 0x41ae73
xor ecx, ecx
mov cx, word [0x7d55cc]
push ecx
call fcn.00595370
add esp, 4
test eax, eax
je 0x41ae6e
call fcn.006074f0
call fcn.005d3800
call fcn.005e75e0
jmp 0x41ae73
call fcn.00607490
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
test eax, eax
je 0x41af8d
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov cl, byte [eax + 0x5b0]
test cl, cl
jne 0x41af8d
mov ecx, dword [0x7c67dc]
mov edx, dword [ecx + 0xc0]
fld dword [edx + 0x34]
fcomp dword [0x746468]
fnstsw ax
test ah, 0x40
jne 0x41af8d
mov ecx, dword [ecx + 0x4c]
push 2
push 0x13
call fcn.00406f40
test eax, eax
je 0x41af8d
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 1
push ebx
call fcn.00406a80
test eax, eax
jne 0x41af8d
xor ecx, ecx
mov cx, word [0x7d3dc0]
push ecx
call fcn.00595370
add esp, 4
test eax, eax
jne 0x41af5a
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
je 0x41af4e
mov eax, dword [eax + 0x2e4]
mov cx, word [eax + 0x3c]
cmp cx, 0x80b4
je 0x41af2a
cmp cx, word [0x7d3442]
jne 0x41af7c
mov edx, dword [eax + 0x10]
mov ecx, dword [edx + 0x88]
cmp ecx, ebx
je 0x41af4e
mov al, byte [ecx + 0x76]
test al, al
je 0x41af4e
call fcn.00582ef0
mov esi, eax
call fcn.00595290
cmp eax, esi
je 0x41af7c
call fcn.005d62b0
call fcn.00595e20
jmp 0x41af7c
xor eax, eax
mov ax, word [0x7d3dc0]
push eax
call fcn.005952c0
add esp, 4
test al, al
je 0x41af7c
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.005d6a10
add esp, 0x14
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov dword [eax + 0x688], ebx
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 1
push 0x22
call fcn.00406f40
test eax, eax
je 0x41b076
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
je 0x41afc9
mov ecx, dword [eax + 0x4c]
push 1
push ebx
call fcn.00406a80
test eax, eax
jne 0x41b076
xor edx, edx
mov dx, word [0x7d57c8]
push edx
call fcn.00595370
add esp, 4
test eax, eax
jne 0x41b076
mov ecx, dword [0x7c67dc]
cmp ecx, ebx
je 0x41b00f
call fcn.0040ff20
test eax, eax
je 0x41b00f
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov al, byte [eax + 0xdd]
cmp al, 0x13
je 0x41b00f
cmp al, 0x12
jne 0x41b024
xor eax, eax
mov ax, word [0x7d4f10]
push eax
call fcn.00595370
add esp, 4
test eax, eax
jne 0x41b076
xor ecx, ecx
mov cx, word [0x7d492c]
push ecx
call fcn.00595370
add esp, 4
test eax, eax
jne 0x41b076
xor edx, edx
mov dx, word [0x7d381c]
push edx
call fcn.00595370
add esp, 4
test eax, eax
jne 0x41b076
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 1
push ebx
call fcn.00406a80
call fcn.00597f20
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov dword [eax + 0x688], ebx
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 2
push 0x24
call fcn.00406f40
test eax, eax
je 0x41b09d
mov edx, dword [0x7c67dc]
lea ecx, [edx + 0x1a8]
call fcn.0042e620
mov esi, dword [0x7c67dc]
mov al, byte [esi + 0xd6]
test al, al
jne 0x41b274
mov al, byte [0x7c6edc]
test al, al
je 0x41b156
mov al, byte [0x7c6ed4]
test al, al
jne 0x41b0ef
push str..Morrowind.ini
push 0x64
push 0x7c6e60
push str.Quicksave
push str.quiksave
push str.SaveNames
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [0x7c6ed4], 1
mov eax, dword [0x7c67e0]
mov ecx, dword [eax]
push 0x7c6e60
push str.quiksave
call fcn.004c4250
test al, al
jne 0x41b144
xor ecx, ecx
mov cx, word [0x7d492c]
push ecx
call fcn.00595370
add esp, 4
test eax, eax
jne 0x41b144
mov ecx, dword [0x7c67dc]
push ebx
push 0x1a
call fcn.0040f930
mov ecx, dword [0x7c67dc]
push eax
push 0x5a
call fcn.0040f930
push eax
call fcn.005f1aa0
add esp, 0xc
mov byte [0x7c6edc], 0
mov dword [edi + 0xec], ebx
jmp 0x41b225
mov edx, dword [esi + 0xc0]
fld dword [edx + 0x34]
call sub.MSVCRT.dll__ftol
cmp eax, 0xffffffff
jne 0x41b1a9
mov ecx, dword [esi + 0x4c]
push 2
push 0x20
call fcn.00406f40
test eax, eax
je 0x41b1a3
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
je 0x41b197
mov ecx, dword [eax + 0x4c]
push 1
push ebx
call fcn.00406a80
test eax, eax
jne 0x41b1a3
mov byte [0x7c6edc], 1
jmp 0x41b225
mov esi, dword [0x7c67dc]
mov ecx, dword [esi + 0x4c]
push 2
push 0x20
call fcn.00406f40
test eax, eax
je 0x41b1d8
mov ecx, dword [0x7c67dc]
mov al, byte [ecx + 0xd6]
test al, al
je 0x41b212
mov ecx, dword [ecx + 0x4c]
push 1
push ebx
call fcn.00406a80
test eax, eax
je 0x41b20c
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0x20
call fcn.00406f40
test eax, eax
je 0x41b225
mov ecx, dword [0x7c67dc]
mov al, byte [ecx + 0xd6]
test al, al
je 0x41b212
mov ecx, dword [ecx + 0x4c]
push 1
push ebx
call fcn.00406a80
test eax, eax
jne 0x41b225
mov ecx, dword [0x7c67dc]
push 1
push ebx
push 0x59
call fcn.0040f930
push eax
call fcn.005f90c0
add esp, 0xc
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x4c]
push 2
push 0x21
call fcn.00406f40
test eax, eax
je 0x41b26e
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
je 0x41b259
mov ecx, dword [eax + 0x4c]
push 1
push ebx
call fcn.00406a80
test eax, eax
jne 0x41b26e
mov edx, dword [0x7c67e0]
mov ecx, dword [edx]
push ebx
call fcn.004c4800
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
jmp 0x41b2a9
mov ecx, dword [esi + 0x4c]
push 1
call fcn.00406a50
mov esi, eax
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
call fcn.00406a50
cmp esi, ebx
jne 0x41b297
cmp eax, ebx
je 0x41b2a9
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x50]
neg eax
push eax
push esi
call fcn.00408820
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
je 0x41b2cc
mov ecx, dword [eax + 0x4c]
push 1
push ebx
call fcn.00406a80
test eax, eax
jne 0x41b2fb
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x4c]
push 2
push 0x12
call fcn.00406f40
test eax, eax
je 0x41b2fb
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x2e4]
call fcn.00596840
test al, al
je 0x41b2fb
push 1
call fcn.00594c10
add esp, 4
mov eax, dword [0x7c67dc]
mov bl, byte [eax + 0xd5]
call fcn.00594d80
test al, al
jne 0x41b336
mov dword [edi + 0xe8], 0
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd7]
test cl, cl
je 0x41b33b
pop edi
pop esi
mov byte [eax + 0xd7], 0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x2e4]
mov ecx, dword [ecx + 0x10]
push 0
call fcn.0058e190
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
je 0x41b386
mov cl, byte [eax + 0xde]
test cl, cl
je 0x41b386
mov edx, dword [eax + 0x80]
mov ecx, dword [eax + 0x7c]
push edx
mov edx, dword [eax + 0x78]
push ecx
push edx
mov ecx, edi
call fcn.0041a700
mov eax, dword [0x7c67dc]
mov byte [eax + 0xde], 0
call fcn.00627350
test eax, eax
je 0x41b39e
call fcn.006266d0
push 0
call fcn.00627320
add esp, 4
mov ecx, dword [0x7c67e0]
call fcn.0048ac30
mov ecx, dword [0x7c67dc]
mov al, byte [ecx + 0xd6]
test al, al
jne 0x41b88c
test bl, bl
jne 0x41b88c
fld dword [ecx + 0x2c]
push ecx
mov ecx, dword [ecx + 0x5c]
fstp dword [esp]
call fcn.00563870
mov ecx, edi
call fcn.0041ca50
call fcn.0063fc50
mov ecx, dword [0x7c67dc]
mov edx, dword [ecx + 0x130]
mov eax, dword [edx + 0x2c]
push eax
lea ecx, [ebp - 0x84]
call fcn.006e7cd0
fld dword [ebp - 0x78]
fmul dword [0x746738]
call sub.MSVCRT.dll__ftol
fld dword [ebp - 0x84]
fcomp dword [0x746468]
mov ecx, eax
fnstsw ax
test ah, 1
je 0x41b427
mov edx, 0xb4
sub edx, ecx
mov ecx, edx
cmp ecx, 0x168
jl 0x41b450
mov eax, 0x6c16c16d
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 8
mov edx, eax
neg edx
shl edx, 2
sub edx, eax
lea eax, [edx + edx*8]
lea ecx, [ecx + eax*8]
test ecx, ecx
jge 0x41b474
mov esi, 0x167
sub esi, ecx
mov eax, 0x6c16c16d
mul esi
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 8
lea eax, [esi + esi*4]
lea edx, [eax + eax*8]
lea ecx, [ecx + edx*8]
cmp ecx, dword [edi + 0xf4]
je 0x41b4b7
mov esi, dword [ebp - 0x2c]
push ecx
push str.Compass_Heading__d
push esi
mov dword [edi + 0xf4], ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
push 0x7de814
push 3
push esi
push 0xc3910000
push 0x43c70000
push 1
lea eax, [edi + 0xf8]
push eax
mov ecx, edi
call fcn.004169e0
mov ecx, dword [edi + 0xac]
test ecx, ecx
je 0x41b71d
mov edx, dword [ecx]
call dword [edx + 0x54]
test al, al
jne 0x41b71d
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xcc]
mov esi, eax
mov ax, word [0x7d2ecc]
mov dword [ebp - 0x1c], 0
push eax
call fcn.00595370
add esp, 4
test eax, eax
je 0x41b53d
mov cx, word [0x7d2f7c]
push 0
push 0
mov word [ebp - 0x38], cx
mov edx, dword [ebp - 0x38]
push 8
push edx
lea ecx, [ebp - 0xc]
push ecx
mov ecx, eax
call fcn.00581440
mov edi, dword [eax]
test edi, edi
je 0x41b53d
mov ecx, edi
call fcn.004e4ce0
test eax, eax
je 0x41b53d
mov ecx, edi
call fcn.004e4ce0
mov esi, eax
xor edi, edi
mov al, byte [esi + edi + 0x38]
cmp al, 0xff
je 0x41b6f3
test edi, edi
jne 0x41b64c
push edi
push edi
lea edx, [ebp - 0x60]
push edx
mov ecx, esi
call fcn.00470400
mov cl, byte [esi + 0x38]
mov eax, dword [esi + 0x58]
mov byte [ebp - 0x48], cl
mov ecx, dword [0x7c67dc]
mov dword [ebp - 0x38], eax
call fcn.0040ff20
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
call dword [edx + 0x2c]
mov eax, dword [eax + 0x74]
test eax, eax
je 0x41b58b
add eax, 0xc
jmp 0x41b590
mov eax, 0x7de6cc
fld dword [eax + 8]
sub esp, 8
fld dword [eax + 4]
mov ecx, dword [ebp - 0x58]
fld dword [eax]
mov eax, dword [ebp - 0x5c]
fld dword [ebp - 0x38]
xor edx, edx
fstp qword [esp]
mov dl, byte [esi + 0x38]
mov dword [ebp - 0x3c], ecx
fld st(0)
mov ecx, dword [ebp - 0x48]
fmul st(1)
mov dword [ebp - 0x44], eax
fld st(2)
and ecx, 0xff
fmul st(3)
mov ebx, dword [ebp - 0x2c]
movsx eax, word [esi + edx*2 + 0x3aa]
faddp st(1)
mov edx, dword [ecx*4 + 0x78a970]
fld st(3)
push edx
fmul st(4)
push 0
sub esp, 8
sub esp, 8
faddp st(1)
sub esp, 8
sub esp, 8
fsqrt
mov dword [ebp - 0x4c], eax
sub esp, 8
fstp st(3)
fstp st(0)
fstp st(0)
fstp qword [esp + 0x20]
fld dword [ebp - 0x3c]
fmul dword [ebp - 0x3c]
fld dword [ebp - 0x44]
fmul dword [ebp - 0x44]
faddp st(1)
fld dword [ebp - 0x60]
fmul dword [ebp - 0x60]
faddp st(1)
fsqrt
fstp qword [esp + 0x18]
fld dword [esi + 0x4dc]
fstp qword [esp + 0x10]
fld dword [esi + 0x4d8]
fstp qword [esp + 8]
fild dword [ebp - 0x4c]
fmul dword [esi + 0x4d8]
fstp qword [esp]
push eax
push str.__d__.1f__move__.2f_attack__.2f_delta__.2f_velocity__.2f_nsection__d___s__time:__.4f
push ebx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x44
jmp 0x41b676
fld dword [esi + edi*4 + 0x58]
mov ebx, dword [ebp - 0x2c]
sub esp, 8
and eax, 0xff
mov eax, dword [eax*4 + 0x78a970]
fstp qword [esp]
push eax
push edi
push str.section__d___s__time:__.4f
push ebx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x18
mov dword [ebp - 0x50], 0x437f0000
fld dword [ebp - 0x50]
fistp dword [ebp - 0x24]
mov dword [ebp - 0x54], 0x437f0000
fld dword [ebp - 0x54]
fistp dword [ebp - 0x28]
mov dword [ebp - 0x30], 0x437f0000
fld dword [ebp - 0x30]
fistp dword [ebp - 0x18]
mov dword [ebp - 0x20], 0x437f0000
fld dword [ebp - 0x20]
fistp dword [ebp - 0xc]
fld dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
fadd dword [0x746734]
mov edx, dword [ebp - 0x28]
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0x18]
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0xc]
shl ecx, 8
or ecx, edx
lea edx, [ebp - 8]
push edx
push 1
push ebx
push ecx
fstp dword [esp]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x40]
push 0xc3c70000
push 1
lea eax, [ecx + edi*4 + 0xd0]
push eax
call fcn.004169e0
test edi, edi
mov ecx, dword [0x7c67dc]
mov edx, dword [ecx + 0x44]
mov eax, dword [edx + 0x34]
fld dword [eax]
fsubr dword [ebp - 0x1c]
fstp dword [ebp - 0x1c]
jne 0x41b713
fld dword [eax]
fsubr dword [ebp - 0x1c]
fstp dword [ebp - 0x1c]
inc edi
cmp edi, 3
jl 0x41b53f
mov ebx, dword [ebp - 0x40]
mov ecx, dword [ebx + 0xbc]
test ecx, ecx
je 0x41b754
mov eax, dword [ecx]
call dword [eax + 0x54]
test al, al
jne 0x41b754
mov ecx, dword [ebx + 0xbc]
push ecx
call fcn.0040f4f0
mov edx, dword [ebx + 0xbc]
mov ecx, dword [0x7c67e0]
add esp, 4
push edx
call fcn.00488590
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov ecx, dword [0x7c67e0]
add eax, 0x30
push eax
call fcn.00486620
test eax, eax
jne 0x41b78d
mov ecx, dword [0x7c67e0]
call fcn.00490340
test al, al
je 0x41b830
mov ecx, dword [ebx + 0xb8]
test ecx, ecx
je 0x41b815
mov edx, dword [ecx]
call dword [edx + 0x54]
test al, al
jne 0x41b815
mov ecx, dword [ebx + 0xb8]
mov eax, dword [ecx + 0x9c]
xor esi, esi
test eax, eax
jbe 0x41b803
cmp eax, esi
jbe 0x41b7f2
mov eax, dword [ecx + 0x94]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x41b7f2
mov edx, dword [ecx]
push eax
lea eax, [ebp - 0xc]
push eax
call dword [edx + 0x98]
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x41b7f2
mov edi, dword [eax + 4]
mov ecx, eax
add eax, 4
dec edi
mov edx, edi
test edx, edx
mov dword [eax], edi
jne 0x41b7f2
test ecx, ecx
je 0x41b7f2
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [ebx + 0xb8]
mov eax, dword [ecx + 0x9c]
inc esi
cmp eax, esi
ja 0x41b7b6
mov eax, dword [ebx + 0xb8]
mov ecx, dword [0x7c67e0]
push eax
call fcn.00487bb0
mov ecx, dword [0x7c67dc]
xor eax, eax
mov al, byte [ecx + 0xd9]
test al, al
je 0x41b830
push eax
call fcn.0041c780
add esp, 4
mov ecx, dword [0x7c67e0]
call fcn.0048aed0
mov ecx, dword [0x7c67e0]
call fcn.0048a560
mov ecx, dword [0x7c67e0]
call fcn.0048a9e0
mov ecx, dword [0x7c67dc]
call fcn.0040ff50
mov ecx, dword [0x7c67dc]
call fcn.004100d0
mov ecx, dword [0x7c67dc]
call fcn.00410960
mov eax, dword [0x7c67dc]
fld dword [eax + 0x2c]
push ecx
mov ecx, dword [eax + 0x74]
fstp dword [esp]
call fcn.004697e0
mov ecx, dword [0x7c67dc]
call fcn.00411750
mov ecx, dword [0x7c67e0]
call fcn.0048b000
xor edx, edx
mov dx, word [0x7d2ecc]
push edx
call fcn.00595370
add esp, 4
test eax, eax
je 0x41b8c2
mov ecx, dword [eax + 0x70]
test ecx, ecx
je 0x41b8c2
push 1
mov ecx, eax
call fcn.00583b70
xor eax, eax
mov ax, word [0x7d4ab0]
push eax
call fcn.00595370
add esp, 4
mov esi, eax
call fcn.005f7100
test esi, esi
je 0x41b8ee
mov eax, dword [esi + 0x70]
test eax, eax
je 0x41b8ee
push 1
mov ecx, esi
call fcn.00583b70
xor ecx, ecx
mov cx, word [0x7d431e]
push ecx
call fcn.00595370
add esp, 4
test eax, eax
je 0x41b914
mov ecx, dword [eax + 0x70]
test ecx, ecx
je 0x41b914
push 1
mov ecx, eax
call fcn.00583b70
mov ebx, dword [ebp - 0x40]
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
lea edi, [ebx + 0xc8]
je 0x41ba10
mov edx, dword [ecx]
call dword [edx + 0x54]
test al, al
jne 0x41ba10
mov eax, dword [0x7c67dc]
mov esi, dword [eax + 0x30]
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x38], eax
mov edx, dword [esi]
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x48]
push ecx
mov ecx, esi
call dword [edx + 0x88]
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x44], eax
mov edx, dword [esi]
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x3c]
push ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 8]
push ecx
lea eax, [ebp - 0x4c]
push eax
mov ecx, esi
call dword [edx + 0x110]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x90]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x4c]
push edx
mov edx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x2c]
push eax
xor eax, eax
shr edx, 0xa
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], eax
fild qword [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 0x38]
fmul dword [0x746730]
sub esp, 8
shr ecx, 0xa
mov dword [ebp - 0x10], ecx
fstp qword [esp]
mov dword [ebp - 0xc], eax
fild qword [ebp - 0x10]
sub esp, 8
fmul dword [0x746730]
fstp qword [esp]
push str.TX___0.1f__0.1f__L:_d_U:_d_C:_d_N:_d_R:_d_M:0x_X
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x30
push 0x7de814
push 1
push esi
push 0xc3820000
push 0xc3c70000
push 1
push edi
mov ecx, ebx
call fcn.004169e0
jmp 0x41ba13
mov esi, dword [ebp - 0x2c]
mov ecx, dword [0x7c67dc]
mov al, byte [ecx + 0xd8]
test al, al
je 0x41baa2
call fcn.0040ff20
test eax, eax
je 0x41ba73
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
xor edx, edx
mov dx, word [eax + 8]
shr edx, 0xe
test dl, 1
je 0x41ba73
mov eax, dword [0x7c67dc]
mov eax, dword [eax + 0x130]
fld dword [eax + 0x38]
sub esp, 8
fstp qword [esp]
sub esp, 8
fld dword [eax + 0x34]
sub esp, 8
fstp qword [esp + 8]
fld dword [eax + 0x30]
fstp qword [esp]
push str.COLLISION_FALLING_Pos___.0f___.0f___.0f_
jmp 0x41bac9
mov ecx, dword [0x7c67dc]
mov eax, dword [ecx + 0x130]
fld dword [eax + 0x38]
sub esp, 8
fstp qword [esp]
sub esp, 8
fld dword [eax + 0x34]
sub esp, 8
fstp qword [esp + 8]
fld dword [eax + 0x30]
fstp qword [esp]
push str.COLLISION_Pos___.0f___.0f___.0f_
jmp 0x41bac9
mov eax, dword [ecx + 0x130]
fld dword [eax + 0x38]
sub esp, 8
fstp qword [esp]
sub esp, 8
fld dword [eax + 0x34]
sub esp, 8
fstp qword [esp + 8]
fld dword [eax + 0x30]
fstp qword [esp]
push str.Pos___.0f___.0f___.0f_
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
push esi
call edi
add esp, 0x20
push 0x7de814
push 1
push esi
push 0xc3910000
push 0xc3c70000
push 1
lea edx, [ebx + 0xc0]
push edx
mov ecx, ebx
call fcn.004169e0
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0xbc]
fld dword [ecx + 0x34]
mov edx, dword [eax + 0xa8]
sub esp, 8
sub esp, 8
fstp qword [esp + 8]
fld dword [edx + 0x34]
sub esp, 8
fstp qword [esp + 8]
fld dword [eax + 0x18]
sub esp, 8
fstp qword [esp + 8]
fld dword [eax + 0x14]
sub esp, 8
fstp qword [esp + 8]
fld dword [eax + 0x2c]
fdivr dword [0x746470]
fstp qword [esp]
push str._.1f___.1f___.1f__n_.2f___.2f
push esi
call edi
add esp, 0x30
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x18]
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x28]
mov dword [ebp - 0xc], 0
fld dword [ebp - 0xc]
fistp dword [ebp - 0x24]
mov dword [ebp - 0xc], 0
fld dword [ebp - 0xc]
fistp dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
shl eax, 8
or eax, ecx
mov ecx, dword [ebp - 0x24]
shl eax, 8
or eax, ecx
mov ecx, dword [ebp - 0x20]
shl eax, 8
or eax, ecx
lea ecx, [ebp - 4]
push ecx
push 3
push esi
push 0x43910000
push 0x43c70000
push 1
lea edx, [ebx + 0xcc]
push edx
mov ecx, ebx
mov dword [ebp - 4], eax
call fcn.004169e0
mov eax, dword [0x7c67dc]
mov cl, byte [eax + 0xd6]
test cl, cl
je 0x41bbda
mov ecx, dword [0x7c6c58]
test ecx, ecx
je 0x41bc7d
fld dword [eax + 0x14]
sub esp, 8
fstp qword [esp]
push str._.0f
push esi
call edi
add esp, 0x10
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x18]
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x28]
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x24]
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
shl eax, 8
or eax, edi
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x7c]
neg ecx
push 3
mov dword [ebp - 0xc], ecx
fild dword [ebp - 0xc]
push esi
push ecx
fmul dword [0x746498]
fstp dword [esp]
push ecx
fild dword [eax + 0x78]
fmul dword [0x746498]
fstp dword [esp]
push 1
push 0x7c6c58
call fcn.00416870
add esp, 0x1c
mov ecx, dword [ebx + 0xb8]
mov edx, dword [ecx]
call dword [edx + 0x54]
test al, al
jne 0x41be0e
mov al, byte [0x7c6180]
mov edx, dword [0x7c67e0]
xor ecx, ecx
mov dword [ebp - 0x33], ecx
mov word [ebp - 0x2f], cx
mov byte [ebp - 0x34], al
mov byte [ebp - 0x2d], cl
mov al, byte [edx + 0xb524]
test al, al
je 0x41bcd9
or ecx, 0xffffffff
xor eax, eax
mov edi, 0x777570
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
lea edx, [ebp - 0x34]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov esi, dword [0x7c6dfc]
mov ecx, eax
sub ecx, esi
mov eax, 0x10624dd3
mul ecx
mov ecx, edx
shr ecx, 6
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [0x7c67e0]
mov edi, dword [eax + 0xb520]
mov ebx, dword [eax + 0xb51c]
fld dword [eax + 0xb52c]
mov esi, edx
mov edx, dword [eax + 0xb528]
mov eax, dword [eax + 0xb504]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], edx
mov eax, ecx
cdq
mov ecx, 0x3c
idiv ecx
mov eax, esi
push edx
cdq
idiv ecx
mov eax, 0x88888889
lea ecx, [ebp - 0x34]
push edx
imul esi
add edx, esi
mov esi, dword [sym.imp.KERNEL32.dll_GetThreadPriority]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
mov edx, dword [ebp - 0x18]
sub esp, 8
sub esp, 8
fstp qword [esp + 8]
fld dword [ebp - 0xc]
fstp qword [esp]
push ecx
push edi
push ebx
push edx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call esi
mov esi, dword [ebp - 0x2c]
push eax
push str.TP:__d__d___SLEEP:__d___CC:__d_ms_s__X:__.2f_Y:__.2f___d:_d:_d
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x38
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x18]
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x28]
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x24]
mov dword [ebp - 0xc], 0x437f0000
fld dword [ebp - 0xc]
fistp dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
shl eax, 8
or eax, ecx
mov ecx, dword [ebp - 0x20]
shl eax, 8
or eax, edi
shl eax, 8
or eax, ecx
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x40]
push 1
push esi
push 0xc2a00000
push 0xc3898000
push 1
lea edx, [ecx + 0xe0]
push edx
mov dword [ebp - 8], eax
call fcn.004169e0
mov ebx, dword [ebp - 0x40]
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x158]
push 1
push 0
push 0
call fcn.006eb000
mov ecx, dword [0x7c67dc]
mov ecx, dword [ecx + 0x130]
push 1
push 0
push 0
call fcn.006eb000
mov edx, dword [0x7c67dc]
mov ecx, dword [edx + 0x15c]
push 1
push 0
push 0
call fcn.006eb000
push 1
mov ecx, ebx
call fcn.0041be90
mov ecx, dword [0x7c67e0]
call fcn.0048f5e0
test al, al
je 0x41be81
mov eax, dword [0x7c67e0]
mov eax, dword [eax + 0xb51c]
cmp eax, 0xffffffff
jle 0x41be81
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret