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

Disassembly:
sub esp, 0xe0
push ebx
push ebp
push esi
push edi
push 0
mov ebp, ecx
push str.MonitorGroups_AI__n
call fcn.00423830
mov al, byte [ebp]
add esp, 8
mov byte [esp + 0x27], 0
push eax
call fcn.004a4660
mov bl, byte [0x5173f4]
mov edx, eax
mov al, byte [esp + 0xf8]
add esp, 4
add al, bl
mov dword [esp + 0x30], edx
and al, 0x1f
mov byte [esp + 0x10], al
jne 0x41d1ca
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
mov ecx, dword [edx + 8]
test ecx, ecx
mov dword [esp + 0x18], ecx
je 0x41d0f7
mov al, byte [ecx + 0x28]
cmp al, 0xff
je 0x41d0ec
and eax, 0xff
mov edx, dword [esp + eax*4 + 0x70]
lea eax, [esp + eax*4 + 0x70]
inc edx
mov dword [eax], edx
mov ecx, dword [ecx + 0x7c]
test ecx, ecx
mov dword [esp + 0x18], ecx
jne 0x41d0d5
xor eax, eax
lea esi, [esp + 0x70]
lea ecx, [ebp + 0x52]
cmp dword [esi], 0
jne 0x41d125
cmp byte [ecx], 0
je 0x41d125
xor edx, edx
mov dl, byte [ebp + 0x1d3c]
cmp eax, edx
je 0x41d125
xor edx, edx
mov dl, byte [ebp + 0x1d07]
cmp eax, edx
je 0x41d125
mov byte [ecx], 0
inc eax
add esi, 4
add ecx, 0x2c
cmp eax, 0x20
jb 0x41d100
lea eax, [esp + 0x70]
lea ecx, [ebp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov dl, byte [eax + 0x1c]
mov eax, dword [ecx]
cmp eax, dword [edx*4 + 0x4be350]
jle 0x41d1aa
mov ecx, ebp
call fcn.0041c3a0
test al, al
mov byte [esp + 0x28], al
je 0x41d1aa
push 0x32
push ebx
mov ecx, ebp
call fcn.0041e5d0
mov esi, dword [esp + 0x28]
push eax
push esi
push ebx
mov ecx, ebp
call fcn.0041ca60
mov eax, esi
mov esi, dword [esp + 0x14]
and eax, 0xff
inc eax
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
mov ecx, 0xb
push eax
lea edi, [ebp + edx*4]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
call fcn.0041fc80
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc ebx
add edx, 0x2c
add ecx, 4
cmp ebx, 0x20
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], ecx
jb 0x41d142
lea esi, [ebp + 0x2e]
mov dword [esp + 0x28], 0x20
mov al, byte [esi + 0x24]
test al, al
je 0x41d250
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, ebp
call fcn.004237a0
cmp word [esi], 0xffff
je 0x41d250
mov dl, byte [esi - 2]
push edx
call fcn.004a4660
mov cl, byte [esi - 2]
mov dl, byte [ebp]
mov edi, edx
mov ebx, ecx
and edi, 0xff
and ebx, 0xff
add esp, 4
cmp byte [ebx + edi*8 + 0x798830], 1
jne 0x41d247
cmp cl, dl
je 0x41d250
xor ecx, ecx
mov cx, word [esi]
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 0xc0]
dec ecx
je 0x41d241
dec ecx
jne 0x41d24b
cmp dword [eax + 0x60], 0x11
jne 0x41d250
jmp 0x41d247
cmp dword [eax + 0x40], 0x11
jne 0x41d250
mov byte [esi + 0x1b], 4
mov word [esi], 0xffff
mov eax, dword [esp + 0x28]
add esi, 0x2c
dec eax
mov dword [esp + 0x28], eax
jne 0x41d1d5
mov cl, byte [esp + 0x10]
test cl, cl
je 0x41de78
cmp byte [ebp + 0x1e], 1
jne 0x41d2dc
movsx eax, cl
xor edx, edx
mov dl, byte [ebp + 0x1d3c]
cmp eax, edx
jne 0x41d2dc
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
lea esi, [ebp + edx*4]
mov byte [esi + 0x48], 0xe
call fcn.00423820
mov edx, dword [esp + 0x10]
mov dword [esi + 0x34], eax
lea eax, [esp + 0x20]
lea ecx, [esp + 0x1c]
push eax
mov byte [esi + 0x49], 4
push ecx
mov word [esi + 0x2e], 0xffff
push edx
mov ecx, ebp
mov dword [esi + 0x44], 0
call fcn.00420a70
mov al, byte [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov byte [esi + 0x50], al
mov cl, byte [esp + 0x20]
mov byte [esi + 0x51], cl
mov cl, byte [esp + 0x10]
mov byte [esi + 0x52], 1
jmp 0x41d2e0
mov ebx, dword [esp + 0x10]
movsx edi, cl
mov dword [esp + 0x28], edi
lea edx, [edi + edi*4]
lea eax, [edi + edx*2]
lea esi, [ebp + eax*4]
mov dword [esp + 0x14], esi
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x41d32c
xor ecx, ecx
mov cl, byte [ebp + 0x1d3c]
cmp edi, ecx
je 0x41d32c
mov al, byte [esi + 0x52]
test al, al
je 0x41d32c
xor edx, edx
mov dl, byte [ebp + 0x1d07]
cmp edi, edx
je 0x41d32c
mov byte [esi + 0x52], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
mov edx, dword [esi + 0x44]
mov ecx, ebp
inc edx
mov dword [esi + 0x44], edx
mov al, byte [esi + 0x48]
push eax
push ebx
call fcn.0041c340
mov dword [esi + 0x38], eax
mov al, byte [esi + 0x48]
mov byte [esp + 0x37], al
movsx eax, al
add eax, 0xfffffffd
cmp eax, 0xf
ja case.0x41d358.8
jmp dword [eax*4 + 0x41e140]
mov ecx, dword [esp + 0x30]
xor esi, esi
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 0x18], eax
je 0x41d38a
xor edx, edx
mov dl, byte [eax + 0x28]
cmp edx, edi
jne 0x41d37f
mov esi, eax
xor eax, eax
jmp 0x41d382
mov eax, dword [eax + 0x7c]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x41d370
test esi, esi
je 0x41d3e3
push 1
push 0
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x3c]
push 9
lea ecx, [esp + 0x3b]
push eax
lea edx, [esp + 0x54]
push ecx
lea eax, [esp + 0x78]
push edx
push eax
mov eax, dword [esi + 0x38]
cdq
and edx, 0xffff
xor ecx, ecx
mov cl, byte [ebp]
add eax, edx
push 0xc0
push ecx
sar eax, 0x10
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
call fcn.004a4900
add esp, 0x34
mov bl, al
jmp 0x41d3e5
xor bl, bl
test esi, esi
je case.0x41d358.5
cmp byte [esi + 0x2a], 0xa
jb 0x41d40d
mov eax, dword [esp + 0x14]
mov dl, byte [eax + 0x51]
mov al, byte [eax + 0x50]
push edx
push eax
push esi
call fcn.00421800
add esp, 0xc
cmp eax, 0x40
jb 0x41d40d
test bl, bl
je case.0x41d358.5
cmp byte [esi + 0x29], 0xa0
jne case.0x41d358.5
mov eax, dword [esi + 8]
test al, 0x10
jne case.0x41d358.5
or al, 0x10
mov dword [esi + 8], eax
mov ebx, dword [esp + 0x14]
mov esi, 0xa
cmp dword [ebx + 0x44], esi
jbe 0x41d49f
mov ecx, dword [esp + 0x10]
push 1
push 8
push ecx
mov ecx, ebp
call fcn.0041f670
test al, al
je 0x41d49f
push 0x8a3
push str.C:MsDevProjectsJuly2000codeAI.cpp
call fcn.00448460
add esp, 8
test al, 0x3f
je 0x41d49f
cmp byte [esp + 0x37], 5
jne 0x41d49f
call fcn.00423820
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x34], eax
lea edx, [esp + 0x20]
lea eax, [esp + 0x1c]
push edx
mov byte [ebx + 0x48], 0xe
push eax
mov byte [ebx + 0x49], 4
push ecx
mov word [ebx + 0x2e], 0xffff
mov ecx, ebp
mov dword [ebx + 0x44], 0
call fcn.00420a70
mov dl, byte [esp + 0x1c]
mov byte [ebx + 0x50], dl
mov al, byte [esp + 0x20]
mov byte [ebx + 0x51], al
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, ebp
call fcn.0041e420
test al, al
jne 0x41d4bb
mov edx, dword [esp + 0x10]
mov ecx, ebp
push edx
call fcn.0041e340
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
mov al, byte [ebx + 0x49]
cmp al, 7
jne 0x41d591
mov edx, dword [esp + 0x10]
push 0
push 0
push edx
mov ecx, ebp
call fcn.0041e220
test al, al
je 0x41de78
cmp dword [ebx + 0x44], esi
jbe 0x41de78
push 0x8c6
push str.C:MsDevProjectsJuly2000codeAI.cpp
call fcn.00448460
xor edx, edx
mov ecx, 0x64
div ecx
xor eax, eax
add esp, 8
mov al, byte [ebp + 0xf47]
cmp edx, eax
jbe 0x41d5b6
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x20]
lea edx, [esp + 0x1c]
push ecx
push edx
push esi
mov ecx, ebp
call fcn.00420a70
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, ebp
call fcn.0041cdf0
push eax
push esi
mov ecx, ebp
call fcn.0041fee0
mov dword [ebx + 0x44], 0
mov byte [ebx + 0x49], 8
mov dl, byte [ebx + 0x51]
mov al, byte [ebx + 0x50]
push edx
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x24]
push ecx
push edx
push esi
mov ecx, ebp
call fcn.00420b20
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push esi
push eax
push ecx
mov ecx, ebp
call fcn.0041e3c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
cmp al, 8
jne 0x41d5f9
mov ecx, dword [esp + 0x10]
push 0
push 0
push ecx
mov ecx, ebp
call fcn.0041e220
test al, al
je 0x41de78
cmp dword [ebx + 0x44], esi
jbe 0x41de78
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x20]
lea eax, [esp + 0x1c]
push edx
push eax
push esi
mov ecx, ebp
call fcn.00420a70
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
lea eax, [edi + 1]
push ecx
push edx
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov ecx, ebp
mov al, byte [ebp + edx*4]
push eax
push esi
call fcn.0041fee0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
cmp al, 4
jne 0x41de78
mov ecx, dword [esp + 0x10]
mov bl, 1
push ecx
mov ecx, ebp
call fcn.0041e270
test al, al
je 0x41d625
mov esi, dword [esp + 0x14]
xor bl, bl
cmp byte [esi + 0x49], 2
jne 0x41d629
mov byte [esi + 0x49], 3
jmp 0x41d629
mov esi, dword [esp + 0x14]
test bl, bl
je 0x41dac0
mov ebx, dword [esp + 0x10]
mov ecx, ebp
push ebx
call fcn.0041fc30
test al, al
je 0x41dac0
mov eax, dword [esi + 0x4c]
test al, 8
je 0x41d668
and al, 0xf7
mov ecx, ebp
mov dword [esi + 0x4c], eax
mov dl, byte [esi + 0x54]
push edx
call fcn.00422230
cmp al, 0xff
jne 0x41de57
mov byte [esi + 0x48], 0xf
mov ecx, dword [esi + 0x40]
inc ecx
mov eax, ecx
mov dword [esi + 0x40], ecx
cmp eax, 2
jbe 0x41de78
lea eax, [esp + 0x20]
lea ecx, [esp + 0x1c]
push eax
push ecx
push ebx
mov ecx, ebp
call fcn.00420a70
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
push eax
lea eax, [edi + 1]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov ecx, ebp
mov al, byte [ebp + edx*4]
push eax
push ebx
call fcn.0041fee0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
cmp dword [esi + 0x44], 0xa
jbe 0x41d6cb
push 1
push 8
push ebx
mov ecx, ebp
call fcn.0041f670
push ebx
mov ecx, ebp
call fcn.0041e420
test al, al
jne 0x41d6df
push ebx
mov ecx, ebp
call fcn.0041e340
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 8]
mov dword [esp + 0x18], edx
mov al, byte [esi + 0x49]
cmp al, 4
jne 0x41de78
mov esi, dword [esp + 0x10]
mov ecx, ebp
push esi
mov bl, 1
call fcn.0041e270
test al, al
je 0x41d717
mov eax, dword [esp + 0x14]
xor bl, bl
cmp byte [eax + 0x49], 2
jne 0x41d717
mov byte [eax + 0x49], 3
test bl, bl
je 0x41d77c
push esi
mov ecx, ebp
call fcn.0041fc30
test al, al
je 0x41d77c
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x40]
inc edx
mov ecx, edx
mov dword [eax + 0x40], edx
cmp ecx, 2
jbe 0x41de78
lea eax, [esp + 0x20]
lea ecx, [esp + 0x1c]
push eax
push ecx
push esi
mov ecx, ebp
call fcn.00420a70
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
push eax
lea eax, [edi + 1]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov ecx, ebp
mov al, byte [ebp + edx*4]
push eax
push esi
call fcn.00420970
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x40], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
mov eax, dword [esi + 0x34]
test eax, eax
jne 0x41d7a3
push ebx
mov ecx, ebp
call fcn.0041e340
cmp dword [esi + 0x44], 0xa
jbe 0x41d7b5
push 1
push 8
push ebx
mov ecx, ebp
call fcn.0041f670
cmp byte [esi + 0x49], 4
jne 0x41de78
mov ebx, dword [esp + 0x14]
lea eax, [edi + 1]
lea edx, [eax + eax*4]
lea esi, [ebx + 0x2e]
lea ecx, [ebx + 0x51]
lea eax, [eax + edx*2]
lea edx, [ebx + 0x50]
lea edi, [ebp + eax*4]
mov eax, dword [esp + 0x10]
push edi
push esi
push ecx
push edx
push eax
mov ecx, ebp
call fcn.00420700
test al, al
je 0x41de78
mov ecx, ebp
call fcn.0041cdb0
mov ecx, dword [esp + 0x10]
push 0
push ecx
mov ecx, ebp
call fcn.0041cce0
mov eax, dword [ebx + 0x34]
test eax, eax
jle 0x41d811
dec eax
mov dword [ebx + 0x34], eax
mov dl, byte [edi]
push edx
call fcn.004a4660
xor ecx, ecx
add esp, 4
mov cx, word [esi]
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
mov eax, dword [eax + ecx*4 + 0xc0]
dec eax
je 0x41d86a
dec eax
je 0x41d846
mov word [esi], 0xffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
mov byte [ebx + 0x49], 2
mov dx, word [esi]
mov al, byte [edi]
mov cl, byte [ebp]
push edx
push eax
push ecx
call fcn.00459800
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
mov byte [ebx + 0x49], 2
mov dx, word [esi]
mov al, byte [edi]
mov cl, byte [ebp]
push edx
push eax
push ecx
call fcn.004596f0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
cmp dword [esi + 0x44], 0xa
jbe 0x41d8a0
push 1
push 8
push ebx
mov ecx, ebp
call fcn.0041f670
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 0x18], eax
je 0x41de78
xor edx, edx
mov dl, byte [eax + 0x28]
cmp edx, edi
jne 0x41d8ee
mov dl, byte [eax + 0x4a]
mov bl, byte [ecx + 0x262ea]
cmp dl, bl
jb 0x41d8ee
cmp dl, byte [ecx + 0x262eb]
ja 0x41d8ee
mov dl, byte [eax + 0x4b]
mov bl, byte [ecx + 0x262e8]
cmp dl, bl
jb 0x41d8ee
cmp dl, byte [ecx + 0x262e9]
ja 0x41d8ee
mov byte [eax + 0x28], 0xff
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x7c]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x41d8b3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
push ebx
mov ecx, ebp
call fcn.0041e420
test al, al
jne 0x41d91a
push ebx
mov ecx, ebp
call fcn.0041e340
push 1
push 8
push ebx
mov ecx, ebp
call fcn.0041f670
mov al, byte [esi + 0x49]
cmp al, 5
je 0x41de78
test al, al
jne 0x41d95a
push 0
push 0
push ebx
mov ecx, ebp
call fcn.0041e220
test al, al
jne 0x41de78
mov byte [esi + 0x49], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
push 0x10
push ebx
mov ecx, ebp
call fcn.0041e4e0
test al, al
je 0x41de78
mov byte [esi + 0x49], 4
mov dword [esi + 0x44], 0
mov byte [esi + 0x48], 0xe
call fcn.00423820
mov dword [esi + 0x34], eax
lea eax, [esp + 0x20]
lea ecx, [esp + 0x1c]
push eax
push ecx
push ebx
mov ecx, ebp
mov word [esi + 0x2e], 0xffff
call fcn.00420a70
mov dl, byte [esp + 0x1c]
mov byte [esi + 0x50], dl
mov al, byte [esp + 0x20]
mov byte [esi + 0x51], al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
mov ecx, ebp
call fcn.0041cdb0
cmp dword [esi + 0x44], 0xa
jbe 0x41d9cf
push 1
push 8
push ebx
mov ecx, ebp
call fcn.0041f670
push ebx
mov ecx, ebp
call fcn.0041e420
test al, al
jne 0x41d9e3
push ebx
mov ecx, ebp
call fcn.0041e340
cmp byte [esi + 0x49], 4
jne 0x41de78
mov edi, dword [esp + 0x10]
mov ecx, ebp
push edi
mov bl, 1
call fcn.0041e270
test al, al
je 0x41da11
mov esi, dword [esp + 0x14]
xor bl, bl
cmp byte [esi + 0x49], 2
jne 0x41da15
mov byte [esi + 0x49], 3
jmp 0x41da15
mov esi, dword [esp + 0x14]
test bl, bl
je 0x41dac0
push edi
mov ecx, ebp
call fcn.0041fc30
test al, al
je 0x41dac0
mov ecx, dword [esi + 0x40]
inc ecx
mov eax, ecx
mov dword [esi + 0x40], ecx
cmp eax, 2
jbe 0x41de78
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], 0
lea eax, [edx + 1]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov ecx, ebp
mov al, byte [ebp + edx*4]
push eax
call fcn.004205f0
test al, al
je 0x41daab
mov ecx, dword [esp + 0x18]
push 1
push edi
mov dx, word [ecx + 0x8c]
mov ecx, ebp
mov word [esi + 0x2e], dx
call fcn.0041cce0
mov eax, dword [esp + 0x18]
mov dl, byte [esi + 0x2e]
mov cx, word [eax + 0x8c]
mov al, byte [ebp]
push ecx
push edx
push eax
call fcn.004596f0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
push edi
mov ecx, ebp
call fcn.0041e340
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
mov dword [esi + 0x40], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
mov al, byte [ebp + 0x19ec]
test al, al
je 0x41de78
push 1
push 8
push ebx
mov ecx, ebp
call fcn.0041f670
push ebx
mov ecx, ebp
call fcn.0041e270
test al, al
jne 0x41de85
push 0xa4b
push str.C:MsDevProjectsJuly2000codeAI.cpp
call fcn.00448460
add esp, 8
test al, 1
jne 0x41de85
xor eax, eax
xor edx, edx
mov al, byte [esi + 0x54]
lea ecx, [eax + eax*4]
mov dl, byte [ebp + ecx*4 + 0x1d56]
lea eax, [ebp + ecx*4]
xor ecx, ecx
mov cl, byte [eax + 0x1d57]
sub ecx, edx
je 0x41de85
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 8]
test edx, edx
mov dword [esp + 0x18], edx
je 0x41dcf9
mov esi, dword [esp + 0x30]
mov cl, byte [edx + 0x4a]
mov edi, edx
mov al, byte [esi + 0x262eb]
mov dword [esp + 0x38], edi
cmp cl, al
ja 0x41dbac
cmp cl, byte [esi + 0x262ea]
jb 0x41dbac
mov al, byte [edx + 0x4b]
mov bl, byte [esi + 0x262e9]
cmp al, bl
ja 0x41dbac
cmp al, byte [esi + 0x262e8]
jb 0x41dbac
and eax, 0xff
and ecx, 0xff
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
test dword [eax*4 + 0x517df4], 0x10000
jne 0x41dbac
xor bl, bl
jmp 0x41dbae
mov bl, 1
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [edx + 0x28]
cmp ecx, eax
jne 0x41dce2
lea eax, [edx + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
cmp eax, 2
je 0x41dbd6
cmp eax, 3
jne 0x41dce2
push 0xa57
push str.C:MsDevProjectsJuly2000codeAI.cpp
call fcn.00448460
add esp, 8
test al, 0x7f
je 0x41dbfa
cmp byte [edi + 0x2c], 0xc8
ja 0x41dbfa
test bl, bl
je 0x41dcde
mov ebx, dword [esp + 0x14]
xor eax, eax
push 0xa60
push str.C:MsDevProjectsJuly2000codeAI.cpp
mov al, byte [ebx + 0x54]
lea edx, [eax + eax*4]
xor eax, eax
mov al, byte [ebp + edx*4 + 0x1d54]
lea esi, [ebp + edx*4]
mov edi, eax
call fcn.00448460
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x1d55]
add esp, 8
sub ecx, edi
div ecx
xor eax, eax
push 0xa61
mov al, byte [ebx + 0x54]
xor ebx, ebx
push str.C:MsDevProjectsJuly2000codeAI.cpp
mov esi, edx
lea edx, [eax + eax*4]
add esi, edi
mov bl, byte [ebp + edx*4 + 0x1d56]
lea edi, [ebp + edx*4]
call fcn.00448460
xor ecx, ecx
xor edx, edx
mov cl, byte [edi + 0x1d57]
add esp, 8
sub ecx, ebx
div ecx
mov edi, edx
add edi, ebx
mov eax, dword [edi*4 + 0x547df0]
add eax, esi
lea edx, [eax + eax*2]
mov eax, dword [edx*4 + 0x517df4]
test eax, 0x103f8
jne 0x41dcde
test ah, 0x20
je 0x41dcde
mov al, byte [ebp + 0xb]
test al, al
je 0x41dcb8
cmp esi, dword [ebp + 0xf2c]
jl 0x41dcb0
cmp esi, dword [ebp + 0xf34]
jg 0x41dcb0
cmp edi, dword [ebp + 0xf30]
jge 0x41dcde
cmp edi, dword [ebp + 0xf38]
jle 0x41dcde
mov ecx, ebp
call fcn.0041cdb0
mov eax, dword [esp + 0x40]
cmp dword [eax], 0x11
je 0x41dcd0
mov ecx, dword [esp + 0x38]
mov byte [ecx + 0x19], 1
mov dl, byte [ebp]
push edi
push esi
push edx
call fcn.00459450
add esp, 0xc
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x7c]
test edx, edx
mov dword [esp + 0x18], edx
jne 0x41db50
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov cl, byte [ebp + 0x1d]
test cl, cl
je 0x41de78
movsx edx, byte [ebp + 0x1d52]
xor ebx, ebx
mov bl, byte [esi + 0x54]
cmp ebx, edx
jne 0x41dd2c
mov dl, byte [esp + 0x27]
test dl, dl
je 0x41dd25
mov byte [ebp + 0x1d1d], 1
jmp 0x41dd2c
mov byte [ebp + 0x1d1d], 0
test cl, cl
je 0x41de78
movsx ecx, byte [ebp + 0x1d52]
xor edx, edx
mov dl, byte [esi + 0x54]
cmp edx, ecx
jne 0x41de78
test byte [0x5173f4], 0xe0
jne 0x41de78
cmp byte [ebp + 0x1d07], 0xff
jne 0x41dd68
mov cl, byte [esp + 0x10]
mov byte [ebp + 0x1d07], cl
xor ecx, ecx
mov cl, byte [esi + 0x54]
lea edx, [ecx + ecx*4]
mov cl, byte [eax + 0x262e8]
mov byte [ebp + edx*4 + 0x1d56], cl
xor ecx, ecx
mov cl, byte [esi + 0x54]
lea edx, [ecx + ecx*4]
mov cl, byte [eax + 0x262e9]
mov byte [ebp + edx*4 + 0x1d57], cl
xor ecx, ecx
mov cl, byte [esi + 0x54]
lea edx, [ecx + ecx*4]
mov cl, byte [eax + 0x262ea]
mov byte [ebp + edx*4 + 0x1d54], cl
xor ecx, ecx
mov cl, byte [esi + 0x54]
lea edx, [ecx + ecx*4]
mov cl, byte [eax + 0x262eb]
mov byte [ebp + edx*4 + 0x1d55], cl
mov edx, dword [eax + 0x10]
xor ecx, ecx
cmp edx, ecx
jne 0x41dde1
xor eax, eax
mov al, byte [esi + 0x54]
lea edx, [eax + eax*4]
mov dword [ebp + edx*4 + 0x1d5c], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
xor eax, eax
xor edx, edx
mov al, byte [esi + 0x54]
xor ebx, ebx
mov dword [esp + 0x68], ecx
lea eax, [eax + eax*4]
mov dl, byte [ebp + eax*4 + 0x1d56]
lea esi, [ebp + eax*4]
xor eax, eax
mov al, byte [esi + 0x1d57]
mov bl, byte [esi + 0x1d55]
sub eax, edx
xor edx, edx
mov dl, byte [esi + 0x1d54]
sub ebx, edx
imul eax, ebx
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xf5c]
fild dword [esp + 0x3c]
mov dword [esp + 0x64], eax
fsqrt
fild qword [esp + 0x64]
fmulp st(1)
call fcn.004b1840
mov dword [esi + 0x1d5c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
push ebx
mov ecx, ebp
call fcn.0041e860
test al, al
je 0x41de78
push ebx
mov ecx, ebp
call fcn.0041e340
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
push 0
push 8
push ebx
mov ecx, ebp
call fcn.0041f670
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x54]
xor edx, edx
lea eax, [eax + eax*4]
mov cl, byte [ebp + eax*4 + 0x1d54]
lea eax, [ebp + eax*4]
add ecx, 0xfffffffc
test ecx, ecx
setl dl
dec edx
and edx, ecx
xor ecx, ecx
mov cl, byte [eax + 0x1d55]
mov dword [esp + 0x38], edx
mov edx, dword [0x517de8]
add ecx, 4
dec edx
cmp edx, ecx
mov dword [esp + 0x44], edx
jl 0x41dec9
mov dword [esp + 0x44], ecx
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 0x1d56]
add ecx, 0xfffffffc
test ecx, ecx
setl dl
dec edx
and edx, ecx
xor ecx, ecx
mov cl, byte [eax + 0x1d57]
mov dword [esp + 0x5c], edx
mov eax, ecx
mov ecx, dword [0x517dec]
add eax, 4
dec ecx
cmp ecx, eax
jge 0x41defc
mov eax, ecx
mov dword [esp + 0x54], eax
sub eax, edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], eax
mov eax, dword [0x5173f4]
mov edx, dword [esp + 0x28]
shr eax, 5
add eax, edx
xor edx, edx
div dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
add edx, ebx
cmp ebx, eax
mov dword [esp + 0x58], edx
jge 0x41e0fb
mov esi, dword [esp + 0x38]
mov eax, ebx
shl eax, 5
lea edx, [ebx*4 + 0x547df0]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], edx
cmp esi, eax
jge 0x41e0d8
mov edi, esi
shl edi, 5
mov dword [esp + 0x58], edi
mov ecx, dword [esp + 0x48]
mov eax, esi
add eax, dword [ecx]
lea edx, [eax + eax*2]
mov eax, dword [edx*4 + 0x517df4]
xor edx, edx
mov dl, byte [ebp]
mov ecx, eax
and ecx, 7
cmp byte [ecx + edx*8 + 0x798830], 1
jne 0x41e0bc
test eax, 0x3e8
je 0x41e053
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x6e]
push 0
lea ecx, [esp + 0x53]
push eax
push ecx
push edx
push edi
call fcn.004a5270
add esp, 0x14
test eax, eax
je 0x41e0bc
test byte [eax + 8], 4
jne 0x41e0bc
xor ecx, ecx
mov byte [esp + 0x27], 1
mov cl, byte [eax + 0x18]
shl ecx, 8
mov al, byte [ecx + 0x77e27d]
cmp al, 4
jne 0x41dfe4
mov byte [esp + 0x2c], 6
jmp 0x41dfff
cmp al, 3
jne 0x41dfef
mov byte [esp + 0x2c], 4
jmp 0x41dfff
cmp al, 0x10
setne dl
dec edx
and edx, 4
add edx, 2
mov byte [esp + 0x2c], dl
mov eax, dword [esp + 0x2c]
and eax, 0xff
jbe 0x41e0bc
mov edi, eax
mov eax, dword [esp + 0x10]
push 0
push ebx
push esi
push eax
mov ecx, ebp
call fcn.00423360
test al, al
je 0x41e04e
mov al, byte [ebp + 0x1d]
test al, al
je 0x41e04e
mov eax, dword [esp + 0x14]
xor edx, edx
movsx ecx, byte [ebp + 0x1d52]
mov dl, byte [eax + 0x54]
cmp edx, ecx
jne 0x41e04e
test byte [0x5173f4], 0xf
jne 0x41e04e
inc dword [ebp + 0xf18]
dec edi
jne 0x41e010
jmp 0x41e0bc
test al, 0x10
je 0x41e0bc
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x40]
push ecx
lea eax, [esp + 0x68]
push edx
push eax
push ebx
push esi
call fcn.004a5640
add esp, 0x14
test al, al
je 0x41e0bc
mov ecx, dword [esp + 0x40]
push ecx
call fcn.004a4660
mov edx, dword [esp + 0x40]
add esp, 4
mov ecx, edx
and ecx, 0xffff
lea edi, [ecx + ecx*8]
lea ecx, [ecx + edi*4]
lea eax, [eax + ecx*4 + 0x30]
test eax, eax
je 0x41e0bc
mov ecx, dword [eax + 0x28]
test ch, 0x40
jne 0x41e0bc
xor ecx, ecx
mov cl, byte [eax + 0x34]
mov eax, ecx
shl ecx, 5
add ecx, eax
lea eax, [eax + ecx*2]
cmp byte [eax*4 + 0x6dc59c], 0xe
jne 0x41e11a
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
inc esi
add edi, 0x20
cmp esi, eax
mov dword [esp + 0x58], edi
jl 0x41df65
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
inc ebx
add edi, 4
add edx, 0x20
cmp ebx, ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x50], edx
jl 0x41df54
mov eax, dword [esp + 0x28]
inc eax
cmp eax, 4
mov dword [esp + 0x28], eax
jb 0x41df0e
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
jmp 0x41dcf9
mov ecx, dword [esp + 0x40]
push 0x28
push ecx
push edx
mov edx, dword [esp + 0x1c]
push ebx
push esi
push edx
mov ecx, ebp
call fcn.00423440
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 4