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

Disassembly:
push 0xffffffffffffffff
push 0x44a830
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4590b0]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
test ebp, ebp
jne 0x424f01
mov ebp, 0x450208
xor eax, eax
test ebp, ebp
setne al
test eax, eax
jne 0x424f16
push 0x80004005
call fcn.00401e90
mov eax, dword [edi + 0x28]
lea esi, [edi + 0x28]
mov ecx, ebp
mov edi, edi
mov dx, word [eax]
or ebx, 0xffffffff
cmp dx, word [ecx]
jne 0x424f49
test dx, dx
je 0x424f45
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x424f49
add eax, 4
add ecx, 4
test dx, dx
jne 0x424f20
xor eax, eax
jmp 0x424f4d
sbb eax, eax
sbb eax, ebx
test eax, eax
je 0x4258e5
cmp dword [edi + 0x50], ebx
je 0x424f65
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push edi
call edx
mov dword [edi + 0x4c], ebx
mov dword [edi + 0x50], ebx
add edi, 0x2c
call fcn.00406b70
test ebp, ebp
jne 0x424f7b
xor eax, eax
jmp 0x424f8f
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x424f80
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
mov eax, esi
call fcn.00401eb0
xor edi, edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x88], 3
lea ebx, [esp + 0x94]
lea esi, [esp + 0x30]
mov dword [esp + 0x94], edi
call fcn.00424c90
lea ebx, [esp + 0x94]
lea esi, [esp + 0x48]
mov dword [esp + 0x94], 0xffffffff
call fcn.00424c90
lea ebx, [esp + 0x94]
lea esi, [esp + 0x3c]
mov dword [esp + 0x94], 0xffffffff
call fcn.00424c90
lea eax, [esp + 0x94]
push eax
mov ecx, 0x450208
call fcn.00401f90
lea ebx, [esp + 0x94]
lea esi, [esp + 0x54]
mov byte [esp + 0x88], 4
call fcn.00424a80
mov byte [esp + 0x88], 3
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42507c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x45c424]
mov eax, dword [edx + 0xc]
mov ecx, 0x45c424
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x94], esi
mov byte [esp + 0x88], 5
mov ebx, ebp
cmp word [ebp], di
je 0x425678
lea ebx, [ebx]
movzx eax, word [ebx]
cmp ax, 0x7b
jne 0x425613
cmp word [ebx + 2], 0x26
jne 0x425613
cmp word [ebx + 4], 0x23
jne 0x425613
push 0x7d
push ebx
call fcn.00437a7a
mov ebp, eax
add esp, 8
mov dword [esp + 0x2c], ebp
test ebp, ebp
je 0x42560e
cmp dword [esi - 0xc], 0
je 0x4251c4
lea esi, [esp + 0x60]
call fcn.00424d00
lea eax, [esp + 0x94]
mov edi, esi
mov byte [esp + 0x88], 6
call fcn.004032b0
mov eax, dword [esp + 0x58]
add eax, 0xffffffff
js 0x4256fc
cmp eax, dword [esp + 0x58]
jge 0x4256fc
mov ecx, dword [esp + 0x54]
lea eax, [ecx + eax*4]
lea edi, [esp + 0x7c]
call fcn.004032b0
mov edx, dword [esp + 0x7c]
cmp dword [edx - 0xc], 0
je 0x42515c
mov eax, dword [esp + 0x40]
dec eax
lea ecx, [esp + 0x3c]
call fcn.00424d40
mov eax, dword [eax]
mov dword [esp + 0x78], eax
jmp 0x425170
mov eax, dword [esp + 0x4c]
dec eax
lea ecx, [esp + 0x48]
call fcn.00424d40
mov ecx, dword [eax]
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0x34]
lea eax, [edi - 1]
test eax, eax
jl 0x4256fc
cmp eax, edi
jge 0x4256fc
mov edx, dword [esp + 0x30]
mov eax, dword [edx + eax*4]
mov esi, dword [esp + 0x90]
lea ecx, [esp + 0x60]
add esi, 0x2c
mov dword [esp + 0x74], eax
call fcn.00424e00
lea esi, [esp + 0x94]
call fcn.00401d10
lea esi, [esp + 0x60]
mov byte [esp + 0x88], 5
call fcn.00406b30
jmp 0x4251c8
mov edi, dword [esp + 0x34]
push 2
add ebx, 6
push 0x450cd0
push ebx
call fcn.00437507
add esp, 0xc
test eax, eax
jne 0x425288
mov edx, dword [0x45c424]
mov eax, dword [edx + 0xc]
mov ecx, 0x45c424
add ebx, 4
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x2c]
sub esi, ebx
sar esi, 1
mov byte [esp + 0x88], 7
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
lea ebp, [esi + 1]
sub eax, ebp
or eax, ecx
jge 0x425230
mov ecx, ebp
lea eax, [esp + 0x14]
call fcn.00401e20
mov edi, dword [esp + 0x14]
push ebx
mov ecx, ebp
mov edx, edi
call fcn.00424c10
mov eax, esi
lea esi, [esp + 0x14]
call fcn.00424c50
mov ebx, esi
lea esi, [esp + 0x54]
call fcn.00424a80
lea eax, [edi - 0x10]
mov byte [esp + 0x88], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x425601
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x94]
jmp 0x425669
push 2
push 0x450cd8
push ebx
call fcn.00437507
add esp, 0xc
test eax, eax
jne 0x4252c5
cmp dword [esp + 0x58], 1
jle 0x425601
mov eax, dword [esp + 0x58]
dec eax
lea edi, [esp + 0x54]
call fcn.00424af0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x94]
jmp 0x425669
push 7
push str.acolor
push ebx
call fcn.00437507
add esp, 0xc
test eax, eax
jne 0x425390
lea esi, [esp + 0x18]
add ebx, 0xe
call fcn.004024c0
mov edi, ebp
sub edi, ebx
sar edi, 1
lea ebp, [edi + 1]
push ebx
mov ecx, ebp
mov byte [esp + 0x8c], 8
call fcn.00401e70
mov esi, edi
mov ecx, ebp
mov edx, eax
call fcn.00424c10
mov eax, edi
lea esi, [esp + 0x18]
call fcn.00424c50
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx]
cmp ax, 0x23
jne 0x42532c
push 0x10
add ecx, 2
jmp 0x425350
cmp ax, 0x30
jne 0x42534e
movzx eax, word [ecx + 2]
cmp ax, 0x78
je 0x425342
cmp ax, 0x58
jne 0x42534e
push 0x10
lea eax, [esp + 0x28]
push eax
add ecx, 4
jmp 0x425355
push 0xa
lea edx, [esp + 0x28]
push edx
push ecx
call fcn.004373f2
add esp, 0xc
lea ebx, [esp + 0x14]
lea esi, [esp + 0x3c]
mov dword [esp + 0x14], eax
call fcn.00424c90
lea ecx, [esp + 0x18]
mov byte [esp + 0x88], 5
call fcn.00401aa0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x94]
jmp 0x425669
push 7
push str._acolor
push ebx
call fcn.00437507
add esp, 0xc
test eax, eax
jne 0x4253cd
cmp dword [esp + 0x40], 1
jle 0x425601
mov ecx, dword [esp + 0x40]
lea edi, [esp + 0x3c]
dec ecx
call fcn.00424b60
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x94]
jmp 0x425669
push 5
push str.font
push ebx
call fcn.00437507
add esp, 0xc
test eax, eax
jne 0x4254d2
lea esi, [esp + 0x1c]
add ebx, 0xa
call fcn.004024c0
mov edi, ebp
sub edi, ebx
sar edi, 1
lea ebp, [edi + 1]
push ebx
mov ecx, ebp
mov byte [esp + 0x8c], 9
call fcn.00401e70
mov esi, edi
mov ecx, ebp
mov edx, eax
call fcn.00424c10
mov eax, edi
lea esi, [esp + 0x1c]
call fcn.00424c50
mov eax, dword [esp + 0x1c]
push eax
call fcn.004377a8
dec eax
add esp, 4
cmp eax, 7
ja case.default.0x425433
jmp dword [eax*4 + 0x425900]
mov ecx, dword [0x45d06c]
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
jmp 0x4254a4
mov eax, dword [0x45d06c]
mov ecx, dword [eax + 4]
jmp 0x4254a0
mov edx, dword [0x45d06c]
mov eax, dword [edx + 8]
mov dword [esp + 0x14], eax
jmp 0x4254a4
mov ecx, dword [0x45d06c]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x14], edx
jmp 0x4254a4
mov eax, dword [0x45d06c]
mov ecx, dword [eax + 0x10]
jmp 0x4254a0
mov edx, dword [0x45d06c]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x14], eax
jmp 0x4254a4
mov ecx, dword [0x45d06c]
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x14], edx
jmp 0x4254a4
mov eax, dword [0x45d06c]
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x14], ecx
lea ebx, [esp + 0x14]
lea esi, [esp + 0x30]
call fcn.00424c90
lea ecx, [esp + 0x1c]
mov byte [esp + 0x88], 5
call fcn.00401aa0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x94]
jmp 0x425669
push 5
push str._font
push ebx
call fcn.00437507
add esp, 0xc
test eax, eax
jne 0x42550d
cmp edi, 1
jle 0x425601
mov ecx, dword [esp + 0x34]
dec ecx
lea edi, [esp + 0x30]
call fcn.00424b60
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x94]
jmp 0x425669
push 6
push str.color
push ebx
call fcn.00437507
add esp, 0xc
test eax, eax
jne 0x4255d8
lea esi, [esp + 0x20]
add ebx, 0xc
call fcn.004024c0
mov edi, ebp
sub edi, ebx
sar edi, 1
lea ebp, [edi + 1]
push ebx
mov ecx, ebp
mov byte [esp + 0x8c], 0xa
call fcn.00401e70
mov esi, edi
mov ecx, ebp
mov edx, eax
call fcn.00424c10
mov eax, edi
lea esi, [esp + 0x20]
call fcn.00424c50
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx]
cmp ax, 0x23
jne 0x425574
push 0x10
add ecx, 2
jmp 0x425598
cmp ax, 0x30
jne 0x425596
movzx eax, word [ecx + 2]
cmp ax, 0x78
je 0x42558a
cmp ax, 0x58
jne 0x425596
push 0x10
lea eax, [esp + 0x2c]
push eax
add ecx, 4
jmp 0x42559d
push 0xa
lea edx, [esp + 0x2c]
push edx
push ecx
call fcn.004373f2
add esp, 0xc
lea ebx, [esp + 0x14]
lea esi, [esp + 0x48]
mov dword [esp + 0x14], eax
call fcn.00424c90
lea ecx, [esp + 0x20]
mov byte [esp + 0x88], 5
call fcn.00401aa0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x94]
jmp 0x425669
push 6
push str._color
push ebx
call fcn.00437507
add esp, 0xc
test eax, eax
jne 0x425601
cmp dword [esp + 0x4c], 1
jle 0x425601
mov ecx, dword [esp + 0x4c]
lea edi, [esp + 0x48]
dec ecx
call fcn.00424b60
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x94]
jmp 0x425669
movzx eax, word [ebx]
jmp 0x425616
movzx eax, ax
mov ebp, dword [esi - 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
lea edi, [ebp + 1]
sub eax, edi
or eax, ecx
jge 0x425646
mov ecx, edi
lea eax, [esp + 0x94]
call fcn.00401e20
mov esi, dword [esp + 0x94]
mov cx, word [esp + 0x2c]
mov word [esi + ebp*2], cx
test edi, edi
jl 0x42570d
cmp edi, dword [esi - 8]
jg 0x42570d
xor edx, edx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], dx
add ebx, 2
cmp word [ebx], 0
jne 0x4250b0
xor edi, edi
cmp dword [esi - 0xc], edi
je 0x425864
mov eax, dword [0x45c424]
mov edx, dword [eax + 0xc]
mov ecx, 0x45c424
call edx
lea edi, [eax + 0x10]
mov eax, dword [0x45c424]
mov edx, dword [eax + 0xc]
mov ecx, 0x45c424
mov dword [esp + 0x60], edi
mov dword [esp + 0x74], 0
call edx
lea ebp, [eax + 0x10]
mov dword [esp + 0x7c], ebp
lea eax, [esi - 0x10]
add edi, 0xfffffff0
mov byte [esp + 0x88], 0xb
cmp eax, edi
je 0x425728
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x425717
mov ecx, dword [eax]
cmp ecx, dword [edi]
jne 0x425717
call fcn.004027f0
mov esi, eax
or edx, 0xffffffff
lock xadd dword [ebx], edx
dec edx
test edx, edx
jg 0x4256f3
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
add esi, 0x10
mov dword [esp + 0x60], esi
jmp 0x425728
push 0
push 0
push 1
push 0xc000008c
call dword [0x44d1f8]
push 0x80070057
call fcn.00401e90
mov ebx, dword [esi - 0xc]
push esi
lea eax, [esp + 0x64]
call fcn.00401eb0
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x58]
lea eax, [ecx - 1]
test eax, eax
jl 0x4256fc
cmp eax, ecx
jge 0x4256fc
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + eax*4]
lea eax, [ecx - 0x10]
lea esi, [ebp - 0x10]
cmp eax, esi
je 0x425791
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x42577d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42577d
call fcn.004027f0
mov ebp, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x425774
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebp, 0x10
mov dword [esp + 0x7c], ebp
jmp 0x425791
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x80]
call fcn.00401eb0
mov ebp, dword [esp + 0x7c]
cmp dword [ebp - 0xc], 0
je 0x4257b4
mov ecx, dword [esp + 0x40]
lea eax, [ecx - 1]
test eax, eax
jl 0x4256fc
cmp eax, ecx
jge 0x4256fc
mov ecx, dword [esp + 0x3c]
jmp 0x4257cf
mov ecx, dword [esp + 0x4c]
lea eax, [ecx - 1]
test eax, eax
jl 0x4256fc
cmp eax, ecx
jge 0x4256fc
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x34]
lea eax, [ecx - 1]
mov dword [esp + 0x78], edx
test eax, eax
jl 0x4256fc
cmp eax, ecx
jge 0x4256fc
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + eax*4]
mov edi, dword [esp + 0x90]
lea ecx, [esp + 0x60]
lea esi, [edi + 0x2c]
mov dword [esp + 0x74], eax
call fcn.00424e00
lea esi, [esp + 0x94]
call fcn.00401d10
lea eax, [ebp - 0x10]
mov byte [esp + 0x88], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42583b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42585b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x94]
jmp 0x42586f
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x30]
call fcn.00406460
mov ecx, dword [edi + 0x1c]
test ecx, ecx
je 0x425889
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push 0
push 0
push 0
push edi
call eax
add esi, 0xfffffff0
mov byte [esp + 0x88], 3
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4258ad
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
lea esi, [esp + 0x54]
call fcn.004249c0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4258c7
push eax
call fcn.00436c46
add esp, 4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4258d8
push eax
call fcn.00436c46
add esp, 4
test ebx, ebx
je 0x4258e5
push ebx
call fcn.00436c46
add esp, 4
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 8