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

Disassembly:
push 0xacc
mov eax, 0x10a5489
call fcn.0107a74e
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x30]
and dword [ebp - 0x128], 0
mov dword [ebp - 0x158], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp + 0x28]
mov esi, ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x168], ebx
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x154], edx
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
mov edi, 0x1003658
je 0x103a5ad
test byte [eax + 0x1c], 1
je 0x103a573
cmp byte [eax + 0x19], 5
jb 0x103a573
push edx
push dword [ebp - 0x144]
push dword [ebp - 0x140]
push dword [ebp - 0x170]
push dword [ebp - 0x178]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp - 0x17c]
push dword [ebp - 0x158]
push ebx
push ecx
push edi
push 0x4c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01036eff
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103a5ad
test byte [eax + 0x1c], 2
je 0x103a5ad
cmp byte [eax + 0x19], 4
jb 0x103a5ad
push dword [ebp - 0x178]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp - 0x17c]
push dword [ebp - 0x158]
push ebx
push edi
push 0x4d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01036cfc
and dword [ebp - 0x12c], 0
mov edi, 0x10b7af8
push edi
lea ecx, [ebp - 0x160]
mov byte [ebp - 0x150], 0
call fcn.0104078f
and dword [ebp - 4], 0
lea ecx, [ebp - 0xa4]
call fcn.0104b173
or dword [ebp - 0x13c], 0xffffffff
xor eax, eax
mov dword [ebp - 0x15c], 0x49
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x174], eax
push 0xa
lea ecx, [ebp - 0x1b8]
call fcn.0104df96
push ebx
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 2
call fcn.01027916
push 0x1002364
push 0x1003884
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 3
call fcn.0102d3f2
push 0x1003880
push 0x1003874
lea ecx, [ebp - 0x148]
call fcn.0102d3f2
push 0x1003870
push 0x1003864
lea ecx, [ebp - 0x148]
call fcn.0102d3f2
push 0x1003860
push 0x1003854
lea ecx, [ebp - 0x148]
call fcn.0102d3f2
push edi
lea ecx, [ebp - 0x184]
call fcn.0104078f
push edi
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 4
call fcn.0104078f
xor ebx, ebx
push 0x7e
lea eax, [ebp - 0x122]
push ebx
push eax
mov word [ebp - 0x124], bx
call fcn.0107aa60
add esp, 0xc
push 0xa
lea ecx, [ebp - 0x1a0]
call fcn.0104df96
mov byte [ebp - 4], 6
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x188], ebx
call dword [fcn.010011d8]
push 0x80000001
mov dword [ebp - 0x180], eax
call dword [0x1001310]
lea edi, [esi + 0x128]
push edi
mov dword [ebp - 0x16c], eax
call dword [fcn.010011c4]
mov ecx, dword [esi + 0x140]
cmp ecx, ebx
je 0x103a704
call fcn.01032313
jmp 0x103a73a
mov ecx, 0x80040378
mov dword [ebp - 0x12c], ecx
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103a73a
test byte [eax + 0x1c], 2
je 0x103a73a
cmp byte [eax + 0x19], 2
jb 0x103a73a
push ecx
push 0x1003658
push 0x4e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01028164
push edi
call dword [fcn.010011c0]
xor ebx, ebx
cmp dword [ebp - 0x12c], ebx
jl 0x103ac35
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x130]
mov ecx, esi
call fcn.010380ee
mov ecx, dword [esi + 0x140]
mov edi, dword [ebp - 0x134]
mov dword [ebp - 0x12c], eax
call fcn.0103303e
mov eax, dword [eax]
lea ecx, [ebp - 0x188]
push ecx
lea ecx, [ebp - 0x164]
push ecx
push edi
push eax
call fcn.01079c63
cmp dword [ebp - 0x188], ebx
je 0x103a7b9
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x164]
call fcn.01041fd3
cmp dword [ebp - 0x12c], ebx
jl 0x103ac0e
mov eax, dword [ebp - 0x158]
push 4
mov ecx, 0x1003828
pop edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x103a7f7
cmp dx, bx
je 0x103a7f3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x103a7f7
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x103a7d3
xor eax, eax
jmp 0x103a7fc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov ebx, 0x80040208
jne 0x103a834
xor edi, edi
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103a8e3
test byte [eax + 0x1c], 2
je 0x103a8e3
cmp byte [eax + 0x19], 5
jb 0x103a8e3
push 0x1003658
push 0x4f
jmp 0x103a88e
mov eax, dword [ebp - 0x158]
mov ecx, 0x1003808
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x103a863
test dx, dx
je 0x103a85f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x103a863
add eax, edi
add ecx, edi
test dx, dx
jne 0x103a83f
xor eax, eax
jmp 0x103a868
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x103a89b
xor edi, edi
inc edi
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103a8e3
test byte [eax + 0x1c], 2
je 0x103a8e3
cmp byte [eax + 0x19], 5
jb 0x103a8e3
push 0x1003658
push 0x50
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01026c05
jmp 0x103a8e3
mov dword [ebp - 0x12c], ebx
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103ac0e
test byte [eax + 0x1c], 2
je 0x103ac0e
cmp byte [eax + 0x19], 2
jb 0x103ac0e
push dword [ebp - 0x158]
push 0x1003658
push 0x51
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01026c2b
mov edi, dword [ebp - 0x13c]
cmp dword [ebp - 0x12c], 0
jl 0x103ac0e
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0xad8]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x174]
push eax
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x124]
push eax
push dword [ebp + 0x1c]
lea eax, [ebp - 0x134]
push dword [ebp + 0x18]
mov ecx, esi
push dword [ebp - 0x178]
push dword [ebp - 0x17c]
push eax
call fcn.01039c84
test eax, eax
mov dword [ebp - 0x12c], eax
jl 0x103ac0e
test edi, edi
jne 0x103aa45
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103a996
test byte [eax + 0x1c], 2
je 0x103a996
cmp byte [eax + 0x19], 5
jb 0x103a996
push 0x1003658
push 0x52
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01026c05
and dword [ebp - 0x13c], 0
mov eax, dword [ebp - 0x174]
lea edx, [ebp - 0x13c]
push edx
push dword [ebp - 0x154]
mov ecx, dword [eax]
push dword [ebp - 0x144]
lea edx, [ebp - 0xad8]
push dword [ebp - 0x134]
mov byte [ebp - 4], 7
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp - 0x14c]
push dword [ebp - 0x138]
push dword [ebp - 0x15c]
push edx
push 0
push dword [ebp - 0x148]
push eax
call dword [ecx + 0x3c]
test eax, eax
mov dword [ebp - 0x12c], eax
jl 0x103ab3d
push dword [ebp - 0x140]
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0xa4]
push eax
push dword [ebp - 0x150]
lea eax, [ebp - 0x1b8]
push dword [ebp - 0x134]
push dword [ebp - 0x130]
push eax
push dword [ebp - 0x13c]
call fcn.0103a0cb
mov dword [ebp - 0x12c], eax
jmp 0x103ab3d
cmp edi, 1
jne 0x103ab51
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103aa78
test byte [eax + 0x1c], 2
je 0x103aa78
cmp byte [eax + 0x19], 5
jb 0x103aa78
push 0x1003658
push 0x53
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01026c05
cmp dword [ebp + 0x18], 0
je 0x103aa84
mov dword [ebp - 0x12c], ebx
cmp dword [ebp - 0x12c], 0
jl 0x103ac0e
and dword [ebp - 0x13c], 0
mov ebx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x174]
lea edx, [ebp - 0x13c]
push edx
push dword [ebp - 0x154]
mov ecx, dword [eax]
push ebx
push dword [ebp - 0x134]
xor edi, edi
inc edi
push edi
push 0
push dword [ebp - 0x14c]
lea edx, [ebp - 0xad8]
push dword [ebp - 0x138]
mov byte [ebp - 4], 8
push dword [ebp - 0x15c]
push edx
push edi
push dword [ebp - 0x148]
push eax
call dword [ecx + 0x3c]
test eax, eax
mov dword [ebp - 0x12c], eax
jl 0x103ab3d
push dword [ebp - 0x140]
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0xa4]
push eax
push dword [ebp - 0x150]
lea eax, [ebp - 0x1b8]
push dword [ebp - 0x134]
push dword [ebp - 0x130]
push eax
push dword [ebp - 0x13c]
call fcn.0103a0cb
test eax, eax
mov dword [ebp - 0x12c], eax
jl 0x103ab3d
mov dword [ebx], edi
mov eax, dword [ebp - 0x13c]
test eax, eax
mov byte [ebp - 4], 6
je 0x103ab51
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x12c], 0
jl 0x103ac0e
lea ebx, [esi + 0x94]
push ebx
call dword [fcn.010011c4]
push dword [ebp - 0x168]
lea ecx, [esi + 0x104]
call fcn.010278b6
push dword [ebp - 0x158]
lea ecx, [esi + 0x110]
call fcn.010278b6
push dword [ebp - 0x17c]
lea ecx, [esi + 0x114]
call fcn.010278b6
mov eax, dword [ebp + 0x18]
push dword [ebp - 0x178]
mov dword [esi + 0x11c], eax
mov eax, dword [ebp + 0x1c]
lea edi, [esi + 0x120]
lea ecx, [esi + 0x118]
mov dword [edi], eax
call fcn.010278b6
mov eax, dword [ebp - 0x140]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [ebp - 0x154]
mov eax, dword [eax]
mov dword [esi + 0x124], eax
lea eax, [ebp - 0x160]
lea ecx, [esi + 0x108]
push eax
call fcn.010277db
push ebx
call dword [fcn.010011c0]
lea ecx, [ebp - 0x160]
call fcn.01035715
mov ecx, dword [ebp - 0x170]
mov dword [ecx], eax
mov dword [ebp - 4], 6
lea edi, [esi + 0x128]
push edi
call dword [fcn.010011c4]
mov esi, dword [esi + 0x140]
xor ebx, ebx
cmp esi, ebx
je 0x103ac2e
mov ecx, esi
call fcn.01032396
push edi
call dword [fcn.010011c0]
push dword [ebp - 0x16c]
call dword [0x1001310]
cmp dword [ebp - 0x12c], ebx
jge 0x103ac54
push dword [ebp - 0x12c]
call fcn.0104a19b
mov eax, dword [ebp - 0x170]
cmp eax, ebx
je 0x103adaa
cmp dword [eax], ebx
je 0x103adaa
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103accc
test byte [eax + 0x1c], 2
je 0x103accc
cmp byte [eax + 0x19], 4
jb 0x103accc
mov ecx, dword [ebp - 0x154]
cmp ecx, ebx
je 0x103ac90
mov esi, dword [ecx]
jmp 0x103ac92
xor esi, esi
mov ecx, dword [ebp - 0x144]
cmp ecx, ebx
je 0x103aca0
mov edx, dword [ecx]
jmp 0x103aca2
xor edx, edx
mov ecx, dword [ebp - 0x140]
cmp ecx, ebx
je 0x103acb0
mov ecx, dword [ecx]
jmp 0x103acb2
xor ecx, ecx
push esi
push edx
push ecx
push 0x1003658
push 0x55
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0104412d
mov eax, dword [0x10b30cc]
mov ecx, dword [ebp - 0x160]
mov edx, dword [ecx - 0xc]
xor ebx, ebx
mov dword [ebp - 0x130], edx
mov edi, ecx
mov esi, 0xfa0
cmp eax, 0x10b30cc
je 0x103ad43
test byte [eax + 0x1c], 2
je 0x103ad43
cmp byte [eax + 0x19], 4
jb 0x103ad43
push edi
lea ecx, [ebp - 0x168]
call fcn.01027916
or dword [ebp - 0x128], 1
push esi
lea ecx, [ebp - 0x16c]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.01027562
push dword [eax]
mov eax, dword [0x10b30cc]
or dword [ebp - 0x128], 2
push ebx
push 0x1003658
push 0x56
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0104cb61
mov eax, dword [0x10b30cc]
test byte [ebp - 0x128], 2
je 0x103ad66
mov ecx, dword [ebp - 0x16c]
and dword [ebp - 0x128], 0xfffffffd
add ecx, 0xfffffff0
call fcn.01026e74
mov eax, dword [0x10b30cc]
test byte [ebp - 0x128], 1
mov dword [ebp - 4], 6
je 0x103ad90
mov ecx, dword [ebp - 0x168]
and dword [ebp - 0x128], 0xfffffffe
add ecx, 0xfffffff0
call fcn.01026e74
mov eax, dword [0x10b30cc]
cmp dword [ebp - 0x130], esi
jbe 0x103ae0c
sub dword [ebp - 0x130], esi
add edi, 0x1f40
inc ebx
jmp 0x103ace4
mov eax, dword [0x10b30cc]
cmp eax, 0x10b30cc
je 0x103ae0c
test byte [eax + 0x1c], 2
je 0x103ae0c
cmp byte [eax + 0x19], 4
jb 0x103ae0c
mov ecx, dword [ebp - 0x154]
cmp ecx, ebx
je 0x103add0
mov esi, dword [ecx]
jmp 0x103add2
xor esi, esi
mov ecx, dword [ebp - 0x144]
cmp ecx, ebx
je 0x103ade0
mov edx, dword [ecx]
jmp 0x103ade2
xor edx, edx
mov ecx, dword [ebp - 0x140]
cmp ecx, ebx
je 0x103adf0
mov ecx, dword [ecx]
jmp 0x103adf2
xor ecx, ecx
push esi
push edx
push ecx
push 0x1003658
push 0x57
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0104412d
mov eax, dword [0x10b30cc]
xor edi, edi
cmp dword [ebp - 0x164], edi
je 0x103aeb3
call dword [fcn.010011d8]
sub eax, dword [ebp - 0x180]
mov dword [ebp - 0x15c], edi
mov esi, eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x14c]
lea eax, [ebp - 0xa4]
push dword [ebp - 0x138]
mov dword [ebp - 0x150], edi
push eax
mov dword [ebp - 0x130], edi
call fcn.0103fa21
cmp eax, edi
jl 0x103ae9d
push dword [ebp - 0x130]
mov eax, dword [ebp - 0x144]
push dword [ebp - 0x150]
push dword [ebp - 0x15c]
push dword [ebp - 0x12c]
push esi
push dword [eax]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp - 0x164]
call fcn.010423e2
push dword [ebp - 0x164]
call fcn.01079236
mov eax, dword [0x10b30cc]
mov dword [ebp - 0x164], edi
cmp dword [ebp - 0x138], edi
je 0x103af0b
xor ebx, ebx
cmp dword [ebp - 0x14c], ebx
jbe 0x103aef1
mov esi, dword [fcn.010013a4]
xor edi, edi
mov eax, dword [ebp - 0x138]
lea eax, [edi + eax + 0x10]
push eax
call esi
mov eax, dword [ebp - 0x138]
add eax, edi
push eax
call esi
inc ebx
add edi, 0x28
cmp ebx, dword [ebp - 0x14c]
jb 0x103aecd
push dword [ebp - 0x138]
call fcn.0107a4d2
and dword [ebp - 0x138], 0
mov eax, dword [0x10b30cc]
pop ecx
xor edi, edi
cmp eax, 0x10b30cc
je 0x103afe4
test byte [eax + 0x1c], 1
je 0x103afe4
movzx eax, byte [eax + 0x19]
xor ecx, ecx
cmp dword [ebp - 0x12c], edi
setl cl
dec ecx
and ecx, 3
inc ecx
inc ecx
cmp eax, ecx
jl 0x103afe4
mov eax, dword [ebp - 0x170]
cmp eax, edi
je 0x103af7b
push dword [eax]
lea ecx, [ebp - 0x168]
call fcn.01027916
or dword [ebp - 0x128], 4
push 0xf3c
lea ecx, [ebp - 0x16c]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.01027562
or dword [ebp - 0x128], 8
jmp 0x103af92
push 0x1001f78
lea ecx, [ebp - 0x180]
call fcn.01027916
or dword [ebp - 0x128], 0x10
mov ecx, dword [ebp - 0x154]
cmp ecx, edi
je 0x103afa0
mov esi, dword [ecx]
jmp 0x103afa2
xor esi, esi
mov ecx, dword [ebp - 0x144]
cmp ecx, edi
je 0x103afb0
mov edx, dword [ecx]
jmp 0x103afb2
xor edx, edx
mov ecx, dword [ebp - 0x140]
cmp ecx, edi
je 0x103afc0
mov ecx, dword [ecx]
jmp 0x103afc2
xor ecx, ecx
push dword [eax]
mov eax, dword [0x10b30cc]
push esi
push edx
push ecx
push dword [ebp - 0x12c]
push 0x1003658
push 0x58
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01036e7b
test byte [ebp - 0x128], 0x10
je 0x103b002
mov ecx, dword [ebp - 0x180]
and dword [ebp - 0x128], 0xffffffef
add ecx, 0xfffffff0
call fcn.01026e74
test byte [ebp - 0x128], 8
je 0x103b020
mov ecx, dword [ebp - 0x16c]
and dword [ebp - 0x128], 0xfffffff7
add ecx, 0xfffffff0
call fcn.01026e74
test byte [ebp - 0x128], 4
mov dword [ebp - 4], 6
je 0x103b03e
mov ecx, dword [ebp - 0x168]
add ecx, 0xfffffff0
call fcn.01026e74
lea ecx, [ebp - 0x1a0]
call fcn.0102b762
mov ecx, dword [ebp - 0x134]
add ecx, 0xfffffff0
call fcn.01026e74
mov ecx, dword [ebp - 0x184]
add ecx, 0xfffffff0
call fcn.01026e74
mov ecx, dword [ebp - 0x148]
add ecx, 0xfffffff0
call fcn.01026e74
lea ecx, [ebp - 0x1b8]
call fcn.0105e6a7
mov eax, dword [ebp - 0x174]
cmp eax, edi
mov byte [ebp - 4], 0
je 0x103b092
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x160]
add ecx, 0xfffffff0
call fcn.01026e74
mov eax, dword [ebp - 0x12c]
call fcn.0107a7e0
ret 0x2c