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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10067f57
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8
push ebx
mov ebx, ecx
mov dword [esp + 0x34], edx
xor ecx, ecx
mov dword [esp + 0x1c], ebx
push esi
push edi
cmp dword [ebx + 0x10], ecx
jne 0x10042282
xor al, al
jmp 0x10042900
mov dword [esp + 0x10], 0x7e2799ac
mov dword [esp + 0x10], ecx
jmp 0x100422b4
mov dword [esp + 0x20], 7
cmp dword [esp + 0x20], ecx
jne 0x100422bb
mov byte [esp + 0xf], cl
cmp byte [esp + 0xf], 0
je 0x100422b0
call fcn.10035c65
xor ecx, ecx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe2
jle 0x10042290
lea eax, [esp + 0x3c]
push eax
push ecx
push 0x5396
call fcn.1004352a
mov dword [esp + 0x24], 0x5a9c4c8d
add esp, 0xc
mov dword [esp + 0x14], 0xf415
mov dword [esp + 0x38], 0xfffffffe
mov dword [esp + 0x10], 0xa46b4c01
mov dword [esp + 0x20], 0
mov dword [esp + 0x20], 0xdc66
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x18], 0
je 0x10042336
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp eax, 1
mov eax, dword [esp + 0x18]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x18]
setg dl
sub edx, eax
mov eax, dword [esp + 0x14]
imul eax, edx
test eax, eax
je 0x10042336
xor edx, edx
inc edx
jmp 0x10042338
xor edx, edx
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
or esi, 0xffffffff
cmp esi, ecx
sbb eax, eax
neg eax
add eax, dword [esp + 0x18]
neg eax
sbb eax, eax
neg eax
cmp eax, dword [esp + 0x14]
je 0x1004237f
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x1004236d
call fcn.100420a5
lea edx, [esp + 0x18]
lea ecx, [esp + 0x38]
call fcn.100420ae
jmp 0x100424e7
push 1
lea ecx, [esp + 0x60]
call fcn.10028b5c
mov dword [esp + 0x10], esi
xor edx, edx
mov dword [esp + 0x28], esi
inc edx
mov dword [esp + 0x1c], 0xfffffff6
mov dword [esp + 0x20], 0x4d37718c
mov dword [esp + 0x10], 0
jmp 0x100423be
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x100423af
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
cmp dword [eax], ecx
jne 0x100423d4
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x5c]
cmp dword [eax], esi
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x38]
setg cl
cmp ecx, 0xfffffff9
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov eax, dword [esp + 0x38]
inc ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
jne 0x1004242e
cmp dword [esp + 0x28], eax
jne 0x1004242e
xor edx, edx
jmp 0x10042430
mov edx, ecx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
setg cl
imul ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x10], 0xe63d4d86
mov eax, dword [esp + 0x18]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
xor eax, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], eax
jmp 0x100424d8
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], eax
jl 0x100424b2
lea ecx, [esp + 0x2f]
mov byte [esp + 0x2f], al
call fcn.100420b3
mov eax, dword [esp + 0x5c]
cmp dword [eax], 0
jne 0x100424b0
dec dword [esp + 0x18]
push 0
pop eax
jns 0x10042491
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x100424ce
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x100424ca
call fcn.10035d5a
xor eax, eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], eax
jle 0x100424b8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], eax
jle 0x10042487
lea ecx, [esp + 0x5c]
call fcn.10028c61
mov dword [esp + 0x20], 0x21ad
cmp dword [esp + 0x20], 0x44b
jge 0x100425a8
lea eax, [esp + 0x4c]
mov ecx, 0x106572f0
push eax
call fcn.100283d6
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x80]
push esi
call fcn.10028b5c
and dword [esp + 0xbc], 0
test esi, esi
jle 0x10042547
mov edi, dword [esp + 0x80]
mov ebx, esi
push edi
mov ecx, 0x106572f0
call fcn.100283d6
add edi, 4
dec ebx
jne 0x10042532
mov ebx, dword [esp + 0x24]
xor edi, edi
test esi, esi
jle 0x10042589
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + edi*4]
mov eax, ecx
and eax, 0x80000001
jns 0x10042565
dec eax
or eax, 0xfffffffe
inc eax
jne 0x1004256d
lea eax, [ecx - 1]
push eax
jmp 0x1004256e
push ecx
mov ecx, 0x10657238
call fcn.10028928
mov edx, 0x10008b3c
mov ecx, eax
call fcn.1002d177
inc edi
cmp edi, esi
jl 0x1004254d
push 0x10657238
call fcn.1002cce1
or dword [esp + 0xc0], 0xffffffff
pop ecx
lea ecx, [esp + 0x80]
call fcn.10028c61
push 2
pop edi
mov dword [esp + 0x10], 0x33efc07e
lea ecx, [esp + 0x50]
push edi
call fcn.10028b5c
mov dword [esp + 0x24], 0xfffffffc
lea edx, [esp + 0x50]
mov dword [esp + 0x24], 0x90ae
lea ecx, [esp + 0x30]
call fcn.100420c6
mov dword [esp + 0x30], 0
jmp 0x100425f7
mov eax, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x9c], 0x628405ce
inc dword [esp + 0x30]
cmp dword [esp + 0x30], edi
jl 0x100425e4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
cmp dword [ecx + 4], eax
jl 0x1004261b
mov eax, dword [esp + 0x50]
cmp dword [eax], 0
jne 0x1004261b
xor eax, eax
jmp 0x1004261e
xor eax, eax
inc eax
mov dword [esp + 0xa0], eax
xor edx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
lea eax, [ecx + 1]
cmp eax, ecx
lea eax, [ecx + ecx]
lea ecx, [esp + 0x50]
setle dl
sub edx, eax
mov eax, dword [esp + 0x10]
sub eax, edx
neg eax
sbb eax, eax
add eax, 0x488b
imul eax, eax, 0xf59e
mov dword [esp + 0x24], eax
call fcn.10028c61
cmp dword [ebx + 0x14], 0x10
jb 0x1004266a
mov ecx, dword [ebx]
jmp 0x1004266c
mov ecx, ebx
push 3
pop esi
cmp dword [ebx + 0x14], 0x10
mov dword [esp + 0x40], ecx
jb 0x1004267d
mov edx, dword [ebx]
jmp 0x1004267f
mov edx, ebx
mov eax, dword [ebx + 0x10]
add eax, edx
cmp ecx, eax
je 0x10042818
mov al, byte [ecx]
cmp al, 0x30
jl 0x10042760
cmp al, 0x39
jg 0x10042760
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], ecx
jmp 0x100426c2
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x44], 4
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x100426b2
mov dword [esp + 0x14], ecx
jmp 0x100426e1
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x8c], 0x74dd0324
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x100426ce
mov byte [esp + 0xf], cl
cmp byte [esp + 0xf], cl
je 0x100426f9
call fcn.100420e5
xor ecx, ecx
mov dword [esp + 0x44], 9
jmp 0x10042742
mov dword [esp + 0x24], 0x2121
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0x24], 0x17b844a7
mov dword [esp + 0x10], ecx
jmp 0x10042734
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xa4], 0x32cf415d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10042721
dec dword [esp + 0x28]
dec dword [esp + 0x44]
cmp dword [esp + 0x44], 0xfffffffc
jle 0x10042703
lea edx, [esp + 0x40]
lea ecx, [esp + 0x3c]
call fcn.100420f1
mov ecx, dword [esp + 0x40]
inc ecx
jmp 0x1004266f
push 4
lea ecx, [esp + 0x78]
call fcn.10028b5c
xor ebx, ebx
mov dword [esp + 0x24], 0xc01e6e2b
mov dword [esp + 0x34], ebx
jmp 0x1004278b
mov eax, dword [esp + 0x34]
mov dword [esp + eax*4 + 0x68], 6
inc dword [esp + 0x34]
cmp dword [esp + 0x34], esi
jl 0x1004277b
lea edx, [esp + 0x74]
lea ecx, [esp + 0x34]
call fcn.10042105
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100427ad
call fcn.10042124
mov esi, dword [esp + 0x74]
mov dword [esi + 0xc], edi
mov eax, dword [esi + 0xc]
xor edx, edx
mov dword [esp + 0x10], 0xfffffff9
mov eax, dword [esp + eax*4 + 0x68]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x10], ebx
mov eax, dword [esp + eax*4 + 0x68]
imul ecx, eax, 0xffffeb85
mov eax, dword [esi + 0xc]
mov eax, dword [esp + eax*4 + 0x68]
cmp ecx, eax
mov eax, dword [esp + 0x70]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x10]
setge cl
imul eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
dec dword [esi + 0xc]
jns 0x100427b4
lea ecx, [esp + 0x74]
call fcn.10028c61
lea ecx, [esp + 0x3c]
call fcn.1004213b
jmp 0x1004227b
mov dword [esp + 0x14], esi
xor ebx, ebx
mov dword [esp + 0x1c], 0x36544d18
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], ebx
je 0x10042838
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x1c], ebx
je 0x10042862
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100428fe
call sub.USER32.dll_GetMessageTime
jmp 0x100428fe
xor ecx, ecx
mov edi, 0xffff
inc ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], ebx
jmp 0x1004288b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x90], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1004287c
mov eax, dword [esp + 0x1c]
mov edx, ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x14], ebx
je 0x100428b6
mov edx, ecx
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, 0xffffffff
setne dl
sub edx, edi
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0x6fdd
setle al
cmp dword [esp + 0x90], eax
jl 0x100428eb
call fcn.10042147
jmp 0x100428fe
dec dword [esp + 0x20]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x100428fe
call fcn.1004223d
mov al, 1
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret