Function at 0x2044807d
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x20481dcb
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x204a31e0]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push esi
push edi
mov eax, dword [0x204a31e0]
xor eax, esp
push eax
lea eax, [esp + 0x290]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ebx, ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], edi
call fcn.204786b7
push eax
lea ecx, [esp + 0x1c]
call sub.MFC80U.DLL_Ordinal_314
mov dword [esp + 0x298], 0
mov eax, dword [ebp + 8]
cmp eax, 3
ja case.default.0x20448076
jmp dword [eax*4 + 0x20448ae4]
test esi, esi
je 0x204483d7
mov eax, dword [esi + 2]
test al, 1
je 0x204480c7
add ebx, 0xcc
push 0x15a
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
push 0
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_2460]
mov dword [edi + 6], eax
mov dword [esp + 0x298], 0xffffffff
lea ecx, [esp + 0x18]
call fcn.2042e670
mov al, 1
jmp 0x20448abc
test al, 2
je 0x20448102
cmp byte [ebx + 0x1d4], 0
jne 0x204483d7
push ebx
mov byte [ebx + 0x1d4], 1
call fcn.20449000
mov bl, al
mov dword [esp + 0x298], 0xffffffff
lea ecx, [esp + 0x18]
call fcn.2042e670
mov al, bl
jmp 0x20448abc
test al, 4
je 0x2044810f
mov byte [ebx + 0x1d4], 0
jmp case.default.0x204486d1
test al, 0x40
je 0x204483c6
lea edi, [ebx + 0x1d8]
mov ecx, edi
mov dword [esp + 0x30], edi
call sub.MFC80U.DLL_Ordinal_1946
push 0x224
push edi
call fcn.20430d90
mov eax, edi
call fcn.20430d70
mov esi, eax
test esi, esi
je 0x204483a7
mov eax, dword [esp + 0x2c]
cmp dword [eax + 6], 0xffffffff
mov edi, dword [sym.imp.USER32.dll_CheckMenuItem]
mov ecx, eax
mov edx, dword [ecx + 0xe]
mov eax, dword [esi + 4]
push 0
mov dword [esp + 0x18], edx
jne 0x204482a3
push 0x8076
push eax
call dword [sym.imp.USER32.dll_DeleteMenu]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [ebx + 0x58]
ja 0x2044827c
mov edx, dword [ebx + 0x54]
mov eax, ecx
imul eax, eax, 0x76
mov ecx, dword [edx + eax + 0x54]
add ebx, 0x64
push ebx
call fcn.20449e40
mov ebx, eax
test ebx, ebx
je 0x2044827c
mov eax, dword [ebx + 0x230]
sub eax, 0
je 0x2044822f
sub eax, 4
je 0x2044820c
sub eax, 1
jne 0x2044827c
mov eax, dword [esi + 4]
push 8
push 0x8077
push eax
call edi
mov ecx, dword [esi + 4]
push 0
push 0x807b
push ecx
call dword [sym.imp.USER32.dll_DeleteMenu]
mov ebx, dword [ebx]
push ebx
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
jne 0x2044832b
call dword [0x204a30cc]
test eax, eax
jne 0x2044832b
mov edx, dword [esi + 4]
push 3
push 0x8077
push edx
jmp 0x20448325
mov eax, dword [esi + 4]
push 8
push 0x807b
push eax
call edi
mov ecx, dword [esi + 4]
push 0
push 0x8077
push ecx
call dword [sym.imp.USER32.dll_DeleteMenu]
jmp 0x2044832b
mov edx, dword [esi + 4]
push 0
push 0x807b
push edx
call edi
mov eax, dword [esi + 4]
push 0
push 0x8077
push eax
call edi
mov ebx, dword [ebx]
push ebx
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
jne 0x2044832b
call dword [0x204a30cc]
test eax, eax
jne 0x2044832b
mov ecx, dword [esi + 4]
push 3
push 0x8077
push ecx
jmp 0x20448325
mov edx, dword [esi + 4]
push 3
push 0x8077
push edx
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [esi + 4]
push 0
push 0x807b
push eax
call dword [sym.imp.USER32.dll_DeleteMenu]
jmp 0x2044832b
push 0x8077
push eax
call dword [sym.imp.USER32.dll_DeleteMenu]
mov ecx, dword [esi + 4]
push 0
push 0x807b
push ecx
call dword [sym.imp.USER32.dll_DeleteMenu]
mov edx, dword [esp + 0x14]
cmp edx, dword [ebx + 0x58]
ja 0x2044831a
mov ecx, dword [ebx + 0x54]
mov eax, edx
mov edx, dword [esi + 4]
imul eax, eax, 0x76
mov dword [esp + 0x34], eax
movzx eax, byte [eax + ecx + 0x6c]
and eax, 8
push eax
push 0x8076
push edx
call edi
mov eax, dword [ebx + 0x54]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + eax + 0x54]
push eax
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
jne 0x2044832b
call dword [0x204a30cc]
test eax, eax
jne 0x2044832b
mov edx, dword [esi + 4]
push 3
push 0x8076
push edx
jmp 0x20448325
mov eax, dword [esi + 4]
push 3
push 0x8076
push eax
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [0x204a5614]
mov ecx, dword [esi + 4]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x806f
push ecx
call edi
mov eax, dword [0x204a5618]
mov edx, dword [esi + 4]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x8071
push edx
call edi
mov eax, dword [0x204a5620]
neg eax
sbb eax, eax
and eax, 8
push eax
mov eax, dword [esi + 4]
push 0x8072
push eax
call edi
mov eax, dword [0x204a561c]
mov ecx, dword [esi + 4]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x8070
push ecx
call edi
mov eax, dword [0x204a5624]
mov edx, dword [esi + 4]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x8075
push edx
call edi
mov edi, dword [esp + 0x30]
test edi, edi
jne 0x204483b7
mov eax, dword [esp + 0x28]
mov dword [eax + 6], edi
jmp case.default.0x204486d1
mov edi, dword [edi + 4]
mov eax, dword [esp + 0x28]
mov dword [eax + 6], edi
jmp case.default.0x204486d1
test al, 8
je 0x204483d7
cmp dword [ebx + 0x54], 0
jne 0x204483f0
mov byte [ebx + 0x1d4], 0
mov dword [esp + 0x298], 0xffffffff
lea ecx, [esp + 0x18]
call fcn.2042e670
jmp 0x20448aba
lea eax, [ebx + 0xd4]
mov word [eax], 0
mov dword [esp + 0x14], eax
mov dword [edi + 0xa], eax
mov eax, dword [esi + 6]
or edx, 0xffffffff
cmp eax, edx
jne 0x204485ec
cmp dword [esi + 0x16], 0
jne 0x204484c7
cmp dword [esi + 0xa], edx
jne 0x20448423
xor esi, esi
jmp 0x20448454
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0xa]
lea esi, [eax + 1]
cmp esi, dword [ebx + 0x58]
jae 0x20448454
mov ecx, dword [ebx + 0x54]
imul eax, eax, 0x76
mov eax, dword [eax + ecx + 0x54]
mov edx, esi
imul edx, edx, 0x76
lea ecx, [edx + ecx + 0x54]
cmp dword [ecx], eax
jne 0x20448454
add esi, 1
add ecx, 0x76
cmp esi, dword [ebx + 0x58]
jb 0x20448445
mov ecx, dword [ebx + 0x58]
cmp esi, ecx
jae 0x204483d7
mov edx, dword [ebx + 0x54]
mov eax, esi
imul eax, eax, 0x76
test byte [eax + edx + 0x6c], 2
lea eax, [eax + edx + 0x6c]
je 0x2044848a
test byte [eax], 2
je 0x20448482
add esi, 1
add eax, 0x76
cmp esi, dword [ebx + 0x58]
jb 0x20448472
cmp esi, ecx
jae 0x204483d7
mov dword [edi + 0x1e], esi
cmp byte [ebx + 0x1e0], 0
je 0x204484d3
mov eax, dword [ebx + 0x1f0]
test eax, eax
je 0x204484d3
mov edx, dword [ebx + 0x54]
mov ecx, esi
imul ecx, ecx, 0x76
cmp dword [ecx + edx + 0x54], eax
jne 0x204484d3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 0x1f4]
cmp eax, 0x1f4
jbe 0x204484d3
or dword [edi + 0xe], 8
jmp 0x204484d3
mov esi, dword [edi + 0x1e]
cmp esi, dword [ebx + 0x58]
jae 0x204483d7
mov eax, dword [ebx + 0x54]
imul esi, esi, 0x76
lea ecx, [ebx + 0x64]
push ecx
mov ecx, dword [esi + eax + 0x54]
call fcn.20449e40
test eax, eax
mov dword [esp + 0x30], eax
je 0x204483d7
mov dl, byte [eax + 0x22c]
mov ecx, dword [esp + 0x2c]
neg dl
sbb edx, edx
and edx, 0xffffffe0
add edx, 0x40
or edx, 2
or dword [edi + 0xe], edx
mov ecx, dword [ecx + 0x16]
cmp ecx, 6
ja case.default.0x204486d1
jmp dword [ecx*4 + 0x20448af4]
lea esi, [eax + 0x20]
push 0x5c
push esi
call dword [sym.imp.MSVCR80.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x20448537
add eax, 2
jmp 0x20448539
mov eax, esi
mov edi, dword [esp + 0x14]
mov edx, eax
mov esi, 0x80
call fcn.20404cb0
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x228], 0
mov eax, dword [esp + 0x28]
je 0x2044856c
or dword [eax + 0xe], 1
mov edx, dword [ecx + 0x228]
mov dword [eax + 0x1a], edx
jmp case.default.0x204486d1
and dword [eax + 0xe], 0xfffffffe
mov dword [eax + 0x1a], 0xffffffff
jmp case.default.0x204486d1
mov eax, dword [eax + 4]
push 0
push 0
push 0
push eax
mov ecx, 0x20484188
mov eax, ebx
call fcn.20449da0
jmp case.default.0x204486d1
mov ecx, dword [eax + 8]
push 0
push 0
push 0
push ecx
mov ecx, 0x20484188
mov eax, ebx
call fcn.20449da0
jmp case.default.0x204486d1
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
push 0
push 0
push edx
push eax
mov ecx, 0x204841d0
mov eax, ebx
call fcn.20449da0
jmp case.default.0x204486d1
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
push 0
push 0
push ecx
push edx
mov ecx, 0x204841d0
mov eax, ebx
call fcn.20449da0
jmp case.default.0x204486d1
cmp dword [esi + 0x12], 1
jne 0x204488f7
cmp dword [esi + 0x16], 0
jne 0x204486b5
mov ecx, dword [esi + 0xa]
cmp ecx, edx
jne 0x2044860b
mov esi, eax
jmp 0x2044865f
mov edx, dword [ebx + 0x54]
lea esi, [ecx + 1]
mov eax, esi
imul eax, eax, 0x76
test byte [eax + edx + 0x6c], 2
lea eax, [eax + edx + 0x6c]
je 0x20448640
cmp esi, dword [ebx + 0x58]
jae 0x204483d7
lea ebx, [ebx]
test byte [eax], 2
je 0x20448640
add esi, 1
add eax, 0x76
cmp esi, dword [ebx + 0x58]
jb 0x20448630
cmp esi, dword [ebx + 0x58]
jae 0x204483d7
mov eax, esi
imul ecx, ecx, 0x76
imul eax, eax, 0x76
mov eax, dword [eax + edx + 0x54]
cmp eax, dword [ecx + edx + 0x54]
jne 0x204483d7
mov dword [edi + 0x1e], esi
cmp byte [ebx + 0x1e0], 0
jne 0x204486c1
mov ecx, dword [ebx + 0x1e8]
mov eax, dword [ebx + 0x1ec]
mov edx, ecx
or edx, eax
je 0x204486c1
mov edx, dword [ebx + 0x54]
mov eax, esi
imul eax, eax, 0x76
mov edx, dword [eax + edx + 0x6e]
cmp edx, ecx
jne 0x204486c1
mov ecx, dword [ebx + 0x54]
mov eax, dword [eax + ecx + 0x72]
cmp eax, dword [ebx + 0x1ec]
jne 0x204486c1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 0x1f4]
cmp eax, 0x1f4
jbe 0x204486c1
or dword [edi + 0xe], 8
jmp 0x204486c1
mov esi, dword [edi + 0x1e]
cmp esi, dword [ebx + 0x58]
jae 0x204483d7
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + 0x16]
cmp edi, 6
ja case.default.0x204486d1
jmp dword [edi*4 + 0x20448b10]
lea eax, [esp + 0x5c]
call fcn.20448b30
imul esi, esi, 0x76
test edi, edi
mov dword [esp + 0x34], esi
jne 0x204486f3
mov eax, dword [ebx + 0x54]
add eax, esi
jmp 0x204486fa
mov edx, dword [ebx + 0x54]
lea eax, [esi + edx + 0x22]
cmp dword [0x204a5614], 0
mov dword [esp + 0x28], eax
je 0x204487d7
cmp dword [eax], 1
jne 0x204487d7
movzx ecx, word [eax + 6]
cmp cx, 2
je 0x20448728
cmp cx, 0x17
jne 0x204487d7
mov esi, dword [esp + 0x28]
mov ecx, 8
lea edi, [esp + 0x5c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea edi, [ebx + 0x9c]
push edi
mov word [esp + 0x68], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esp + 0x5c]
push eax
lea eax, [ebx + 0x78]
call fcn.2044ac50
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
je 0x204487cf
cmp byte [esi + 0x222], 0
je 0x204487cf
mov edi, dword [esp + 0x14]
lea edx, [esi + 0x22]
mov esi, 0x79
mov dword [esp + 0x30], edx
call fcn.20404cb0
mov eax, dword [esp + 0x30]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x20448790
mov ecx, dword [esp + 0x28]
movzx ecx, word [ecx + 8]
sub eax, edx
xor edx, edx
mov dh, cl
sar eax, 1
mov esi, eax
lea eax, [ebx + esi*2 + 0xd4]
mov dl, ch
push edx
push 0x2048e700
push 0xffffffffffffffff
push 7
push eax
call dword [sym.imp.MSVCR80.dll__snwprintf_s]
add esp, 0x14
jmp case.default.0x204486d1
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx + 0x54]
add ecx, esi
cmp byte [ecx + 0x6d], 6
jne 0x20448827
mov edx, dword [esp + 0x2c]
cmp dword [edx + 0x16], 1
jne 0x20448827
cmp dword [ecx + 0x22], 0
jne 0x20448827
cmp dword [ecx], 1
jne 0x20448827
add ebx, 0xcc
push 0x22a
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_2461]
mov edi, dword [esp + 0x14]
mov edx, eax
mov esi, 0x80
call fcn.20404cb0
jmp case.default.0x204486d1
cmp dword [eax], 0
jne 0x2044883a
mov eax, dword [esp + 0x14]
mov word [eax], 0
jmp case.default.0x204486d1
mov esi, dword [esp + 0x28]
mov ecx, 8
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, dword [esp + 0x14]
push 0
mov ebx, 0x80
lea esi, [esp + 0x3c]
call fcn.20405db0
jmp case.default.0x204486d1
mov ecx, dword [ebx + 0x54]
imul esi, esi, 0x76
movzx esi, byte [esi + ecx + 0x6d]
call fcn.20410b40
test eax, eax
jne 0x20448812
mov edx, dword [esp + 0x14]
push 0xa
push 0x80
push edx
push esi
call dword [sym.imp.MSVCR80.dll__itow_s]
add esp, 0x10
jmp case.default.0x204486d1
imul esi, esi, 0x76
cmp edi, 3
jne 0x204488a4
mov eax, dword [ebx + 0x54]
mov esi, dword [esi + eax + 0x64]
jmp 0x204488ab
mov ecx, dword [ebx + 0x54]
mov esi, dword [esi + ecx + 0x68]
push 0
push 0
push 0
push esi
mov ecx, 0x20484188
mov eax, ebx
call fcn.20449da0
jmp case.default.0x204486d1
mov eax, dword [ebx + 0x54]
imul esi, esi, 0x76
cmp edi, 5
jne 0x204488d8
mov ecx, dword [esi + eax + 0x44]
mov eax, dword [esi + eax + 0x48]
jmp 0x204488e0
mov ecx, dword [esi + eax + 0x4c]
mov eax, dword [esi + eax + 0x50]
push 0
push 0
push eax
push ecx
mov ecx, 0x204841d0
mov eax, ebx
call fcn.20449da0
jmp case.default.0x204486d1
mov dword [esp + 0x298], edx
lea ecx, [esp + 0x18]
call fcn.2042e670
jmp 0x20448aba
mov edx, dword [ebx + 0x50]
mov eax, dword [edx - 0xc]
add ebx, 0x50
test eax, eax
jne 0x20448932
lea esi, [eax + 9]
lea esp, [esp]
push 0x2048e708
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_899]
sub esi, 1
jne 0x20448920
mov ebx, dword [ebx]
mov dword [edi + 6], ebx
mov dword [esp + 0x298], 0xffffffff
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x20448951
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], ecx
cmp dword [esp + 0x24], 0
je 0x204480c0
mov edx, dword [esp + 0x20]
push edx
push 0
call sub.MFC80U.DLL_Ordinal_6751
mov al, 1
jmp 0x20448abc
cmp word [ebx + 0x4c], 3
je 0x20448a04
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x204489c9
lea ecx, [eax + 0x430]
call fcn.2042d000
test eax, eax
je 0x204489c9
push 1
lea esi, [ebx + 0xcc]
push 0x22f
push esi
call dword [sym.imp.MFC80U.DLL_Ordinal_2310]
add esp, 0xc
add ebx, 0xd0
push 0x21b
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov esi, dword [esi]
mov dword [edi + 6], esi
mov ebx, dword [ebx]
mov dword [edi + 0xa], ebx
jmp 0x20448937
push 1
push 0
lea esi, [ebx + 0xcc]
push 0x249
push esi
call dword [sym.imp.MFC80U.DLL_Ordinal_2310]
add esp, 0x10
add ebx, 0xd0
push 0x21a
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov esi, dword [esi]
mov dword [edi + 6], esi
mov ebx, dword [ebx]
mov dword [edi + 0xa], ebx
jmp 0x20448937
lea esi, [ebx + 0xcc]
push 0x261
mov ecx, esi
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
add ebx, 0xd0
push 0x20485874
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_777]
mov esi, dword [esi]
mov dword [edi + 6], esi
mov ebx, dword [ebx]
mov dword [edi + 0xa], ebx
jmp 0x20448937
cmp dword [esi + 6], 0
jne 0x204483d7
lea esi, [ebx + 0xcc]
push 0x25f
mov ecx, esi
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
add ebx, 0xd0
push 0x260
mov ecx, ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov dword [edi + 0x12], 0x64
mov dword [edi + 0x16], 0
mov esi, dword [esi]
mov dword [edi + 0xa], esi
mov ebx, dword [ebx]
mov dword [edi + 0xe], ebx
jmp case.default.0x204486d1
mov byte [ebx + 0x1d4], 0
mov dword [esp + 0x298], 0xffffffff
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x20448aa7
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], ecx
cmp dword [esp + 0x24], 0
je 0x20448aba
mov edx, dword [esp + 0x20]
push edx
push 0
call sub.MFC80U.DLL_Ordinal_6751
xor al, al
mov ecx, dword [esp + 0x290]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.20478952
mov esp, ebp
pop ebp
ret 0xc