Function at 0x4405e8
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ax, word [ebx + 0x11e]
xor esi, esi
push edi
mov dword [ebp - 4], esi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], esi
call fcn.004ac019
pop ecx
mov dword [ebp - 0x1c], eax
push edi
call fcn.004ac06b
mov dword [ebp - 0x4c], eax
xor eax, eax
cmp dword [ebp + 0x18], esi
pop ecx
sete al
cmp word [ebx + 0x104], si
mov dword [ebp - 0x10], eax
jne 0x44088f
lea eax, [ebp - 0x38]
push eax
push ebx
call fcn.0043e2c9
pop ecx
lea eax, [ebp - 0x38]
pop ecx
push eax
lea eax, [ebp - 0x38]
push dword [ebp + 0x14]
push eax
call fcn.004421f5
add esp, 0xc
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x38]
push dword [ebp + 0x10]
push eax
call fcn.004421f5
mov eax, dword [ebp - 0x38]
add esp, 0xc
cmp eax, dword [ebp - 0x30]
jge 0x44088f
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x2c]
jge 0x44088f
cmp edi, dword [ebx + 0x190]
push 1
pop esi
je 0x440696
mov dword [ebp - 0xc], esi
lea eax, [ebx + 0x1cc]
push eax
push dword [ebp + 0x10]
call fcn.00442167
pop ecx
test ax, ax
pop ecx
jne 0x4406af
mov dword [ebp - 0xc], esi
mov word [ebx + 0x104], si
mov esi, dword [ebp + 0x10]
mov dword [ebx + 0x190], edi
lea edi, [ebx + 0x1cc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x14]
lea edi, [ebx + 0x1dc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
cmp word [ebp - 0xc], di
jne 0x4406ee
cmp word [ebp - 0x10], di
jne 0x4406ee
cmp dword [ebp + 0x18], 1
jne 0x440771
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 0xc]
call fcn.004ac27a
mov esi, dword [ebp + 0x10]
add esp, 0xc
mov eax, dword [esi + 8]
push dword [ebp - 8]
sub eax, dword [esi]
shl eax, 0x10
push eax
call fcn.004a5f30
mov dword [ebx + 0x194], eax
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 4]
pop ecx
pop ecx
push dword [ebp - 0x50]
shl eax, 0x10
push eax
call fcn.004a5f30
pop ecx
lea esi, [ebx + 0x19c]
pop ecx
mov dword [ebx + 0x198], eax
push eax
push dword [ebx + 0x194]
push esi
push dword [ebp + 0xc]
call fcn.004404bf
add esp, 0x10
lea eax, [ebx + 0x1b4]
push esi
push eax
call fcn.004adcda
pop ecx
pop ecx
call fcn.004c096e
mov dword [ebx + 0x114], eax
mov dword [ebp - 0xc], 1
mov eax, dword [0x5b7bf4]
push edi
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x114]
mov dword [0x5b7bf4], eax
lea eax, [ebp - 0x104]
push eax
mov dword [ebp - 0x40], 0x5b7bf4
mov dword [ebp - 0x110], edi
call fcn.0052a5c0
pop ecx
test eax, eax
pop ecx
jne 0x440df2
cmp word [ebp - 0xc], di
mov esi, dword [ebp + 8]
jne 0x4407ba
cmp word [ebp - 0x3c], di
je 0x4407f6
push esi
call fcn.0044042e
mov eax, dword [esi + 0x110]
pop ecx
cmp eax, edi
je 0x4407f6
push edi
push eax
call sub.AGM.dll_Ordinal_96
pop ecx
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e7ac
pop ecx
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e724
pop ecx
mov dword [esi + 0x110], edi
pop ecx
mov eax, dword [esi + 0x194]
cmp eax, dword [esi + 0x198]
jne 0x440816
push eax
push dword [ebp - 0x4c]
push dword [ebp - 0x1c]
call fcn.0049ce77
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp word [ebp - 0x10], di
jne 0x440860
cmp word [ebp - 0x20], di
jne 0x440860
cmp dword [esi + 0x108], edi
lea ebx, [esi + 0x108]
jne 0x440860
push dword [ebp + 0xc]
call fcn.004ac3a5
pop ecx
mov dword [ebx], eax
push eax
call fcn.004ad241
pop ecx
push dword [ebp - 0x1c]
call fcn.004ac06b
pop ecx
push eax
call fcn.0048766c
test al, 3
pop ecx
je 0x440860
mov dword [esi + 0x118], 1
cmp dword [esi + 0x110], edi
jne 0x440900
push esi
call fcn.0043e6b9
cmp eax, edi
pop ecx
mov dword [esi + 0x110], eax
jne 0x440897
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x114]
mov word [esi + 0x104], di
mov dword [eax], ecx
xor ax, ax
pop edi
pop esi
pop ebx
leave
ret
push eax
push esi
call fcn.0043e790
pop ecx
pop ecx
push 1
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_96
pop ecx
pop ecx
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_12
pop ecx
push dword [ebp + 0x10]
push dword [esi + 0x110]
push esi
call fcn.00454896
add esp, 0xc
lea eax, [esi + 0x19c]
push edi
push eax
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_16
add esp, 0xc
push 2
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_96
pop ecx
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e7ac
pop ecx
pop ecx
push esi
call fcn.0043e7c8
cmp eax, edi
pop ecx
mov dword [ebp - 0x14], eax
je 0x440c13
push dword [esi + 0x110]
push esi
call fcn.0043e790
pop ecx
pop ecx
push 3
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_96
pop ecx
test al, al
pop ecx
je 0x440be1
mov eax, dword [0x5b7bf4]
push edi
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0xc4]
mov dword [0x5b7bf4], eax
lea eax, [ebp - 0xb4]
push eax
mov dword [ebp - 0x54], 0x5b7bf4
mov dword [ebp - 0xc0], edi
call fcn.0052a5c0
mov esi, dword [ebp + 8]
pop ecx
test eax, eax
pop ecx
jne 0x440bc8
cmp word [ebp - 0x20], di
je 0x440997
push dword [esi + 0x194]
push dword [ebp - 0x4c]
push dword [ebp - 0x1c]
push dword [esi + 0x110]
call fcn.0049cf67
add esp, 0x10
mov dword [ebp - 4], eax
cmp word [ebp - 4], di
jne 0x440bbb
mov eax, dword [esi + 0x118]
cmp eax, 1
jne 0x4409b5
mov dword [ebp - 8], 5
jmp 0x4409d3
cmp eax, 2
jne 0x4409c3
mov dword [ebp - 8], 8
jmp 0x4409d3
mov ax, word [ebp - 0x3c]
neg ax
sbb eax, eax
and eax, 7
inc eax
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
mov cx, word [esi + 0x90]
mov dx, word [eax]
mov di, word [eax + 4]
sub dx, cx
mov word [ebp - 0x48], dx
mov dx, word [eax + 8]
mov ax, word [eax + 0xc]
sub dx, cx
mov word [ebp - 0x44], dx
mov dx, word [esi + 0x94]
sub ax, dx
sub di, dx
mov word [ebp - 0x42], ax
mov eax, dword [ebp - 0x38]
sub eax, ecx
mov word [ebp - 0x46], di
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x30]
sub eax, ecx
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x34]
sub eax, edx
mov word [ebp - 0x26], ax
mov eax, dword [ebp - 0x2c]
sub eax, edx
mov word [ebp - 0x22], ax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004ae2ee
pop ecx
lea eax, [ebp - 0x74]
pop ecx
push eax
lea eax, [esi + 0x1b4]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004adfde
movsx ebx, word [esi + 0x90]
movsx edi, word [esi + 0x94]
mov eax, dword [esi + 0x118]
add esp, 0xc
neg ebx
neg edi
shl ebx, 0x10
shl edi, 0x10
cmp eax, 2
jne 0x440ae3
cmp word [esi + 0x11e], 0
jne 0x440ae3
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_37
pop ecx
lea eax, [ebp - 0x64]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [esi + 0x19c]
push eax
push edi
push ebx
push dword [esi + 0x110]
push esi
call fcn.00440e05
add esp, 0x28
test eax, eax
je 0x440ad5
push dword [esi + 0x108]
mov word [esi + 0x11e], 1
call fcn.004ad241
pop ecx
mov eax, dword [esi + 0x124]
cmp eax, dword [esi + 0x120]
jmp 0x440b46
cmp eax, 3
jne 0x440b4a
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_37
pop ecx
lea eax, [ebp - 0x64]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [esi + 0x19c]
push eax
push edi
push ebx
push dword [esi + 0x110]
push esi
call fcn.00441204
add esp, 0x28
test eax, eax
je 0x440b3a
mov eax, dword [esi + 0x12c]
push dword [esi + 0x108]
mov dword [esi + 0x130], eax
call fcn.004ad241
pop ecx
mov eax, dword [esi + 0x130]
cmp eax, dword [esi + 0x12c]
jl 0x440bb9
jmp 0x440bb2
xor ecx, ecx
cmp word [ebp - 0x10], cx
jne 0x440b8b
mov eax, dword [esi + 0x108]
cmp eax, ecx
je 0x440b8b
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push ecx
push ecx
lea ecx, [ebp - 0x64]
push ecx
push dword [ebp + 0x1c]
push dword [ebp - 8]
push dword [esi + 0x198]
push dword [ebp - 0x14]
push dword [esi + 0x110]
push eax
call fcn.004aca3d
add esp, 0x2c
mov dword [ebp - 4], eax
jmp 0x440bb9
push dword [ebp + 0x24]
lea eax, [ebp - 0x64]
push dword [ebp + 0x20]
push eax
push dword [ebp - 8]
push dword [esi + 0x198]
push dword [ebp - 0x14]
push dword [esi + 0x110]
push dword [ebp + 0xc]
call fcn.004acc20
add esp, 0x20
mov dword [ebp - 4], 1
xor edi, edi
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0xc4]
mov dword [eax], ecx
jmp 0x440bd1
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x18], eax
push 2
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_96
pop ecx
jmp 0x440bf9
push esi
call fcn.004400ff
pop ecx
mov ebx, eax
push ebx
push esi
call fcn.0043dfe3
pop ecx
pop ecx
push ebx
call fcn.00455083
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e7ac
pop ecx
pop ecx
push dword [ebp - 0x14]
push esi
call fcn.0043e833
pop ecx
pop ecx
cmp word [ebp - 4], di
jne 0x440c28
cmp dword [ebp - 0x18], edi
jne 0x440c28
cmp word [ebp - 0x10], di
je 0x440d81
push dword [esi + 0x110]
push esi
call fcn.0043e790
pop ecx
pop ecx
push 3
pop ebx
push ebx
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_96
pop ecx
pop ecx
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_37
cmp word [ebp - 0x10], di
pop ecx
jne 0x440d14
mov ecx, dword [esi + 0x108]
cmp ecx, edi
je 0x440d46
mov eax, dword [esi + 0x118]
cmp eax, 1
jne 0x440d1d
push ecx
mov dword [esi + 0x118], 2
call fcn.004ad241
pop ecx
push edi
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_96
pop ecx
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e7ac
pop ecx
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e724
pop ecx
pop ecx
push esi
call fcn.0043e6b9
cmp eax, edi
pop ecx
mov dword [esi + 0x110], eax
je 0x440d14
push eax
push esi
call fcn.0043e790
pop ecx
pop ecx
push 1
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_96
pop ecx
pop ecx
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_12
pop ecx
push dword [ebp + 0x10]
push dword [esi + 0x110]
push esi
call fcn.00454896
add esp, 0xc
lea eax, [esi + 0x19c]
push edi
push eax
push dword [esi + 0x110]
call sub.AGM.dll_Ordinal_16
add esp, 0xc
jmp 0x440d37
mov dword [ebp - 4], 1
jmp 0x440d46
cmp eax, 2
jne 0x440d3c
push esi
mov dword [esi + 0x118], ebx
call fcn.00441489
cmp dword [esi + 0x12c], edi
pop ecx
je 0x440d40
mov dword [ebp - 4], edi
jmp 0x440d46
cmp eax, ebx
jne 0x440d46
mov dword [esi + 0x118], edi
cmp dword [ebp - 0x18], edi
je 0x440d5f
push dword [ebp - 0x18]
push dword [ebp + 0xc]
call fcn.004ac395
pop ecx
mov dword [ebp - 4], 1
pop ecx
mov eax, dword [esi + 0x110]
cmp eax, edi
je 0x440d81
push 2
push eax
call sub.AGM.dll_Ordinal_96
pop ecx
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e7ac
pop ecx
pop ecx
cmp word [ebp - 4], di
je 0x440de5
lea ebx, [esi + 0x114]
call fcn.004c096e
sub eax, dword [ebx]
mov dword [ebx], eax
mov eax, dword [esi + 0x110]
cmp eax, edi
je 0x440dcb
push edi
push eax
call sub.AGM.dll_Ordinal_96
pop ecx
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e7ac
pop ecx
pop ecx
push dword [esi + 0x110]
push esi
call fcn.0043e724
pop ecx
mov dword [esi + 0x110], edi
pop ecx
push dword [esi + 0x108]
lea ebx, [esi + 0x108]
call fcn.004c7e2e
pop ecx
mov dword [ebx], edi
mov dword [esi + 0x190], edi
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x114]
mov dword [eax], ecx
jmp 0x440df5
mov esi, dword [ebp + 8]
mov ax, word [ebp - 4]
mov word [esi + 0x104], di
jmp 0x440892