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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
push ebx
push esi
push edi
mov esi, ecx
lea ecx, [esp + 0x68]
push 4
mov dword [esp + 0x44], esi
call fcn.0040bdd2
mov dword [esp + 0x14], 0xe314a5ea
xor eax, eax
mov dword [esp + 0x14], 0xffffffff
xor edi, edi
mov dword [esp + 0x34], 0x914cc5c6
inc edi
mov dword [esp + 0x10], eax
jmp 0x401e1f
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1c], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x401e0f
mov dword [esp + 0x10], eax
jmp 0x401e3e
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
mov dword [ecx + edx*4], 0x546158d3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x401e2b
mov dword [esp + 0x1c], 0xfffffff9
jmp 0x401f2f
mov dword [esp + 0x10], 0x3b3152c5
mov dword [esp + 0x24], 0xfadf6285
mov dword [esp + 0x28], 0xc18ab9c2
mov dword [esp + 0x10], eax
jmp 0x401e83
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x8c], 0xfffffffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x401e70
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], eax
jl 0x401f2b
mov byte [esp + 0x23], al
cmp byte [esp + 0x23], 0
je 0x401eaf
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
xor eax, eax
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + edx*4]
xor edx, edx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
sub ecx, 0x64d64ea3
cmp ecx, 3
setne dl
xor ebx, ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
sub edx, 0x3d21
cmp edx, dword [ecx]
mov ecx, dword [esp + 0x1c]
setle bl
xor edx, edx
cmp ecx, ebx
setne dl
xor ecx, ecx
add edx, dword [esp + 0x94]
cmp edx, 0x15a8df04
setl cl
mov dword [esp + 0x34], ecx
dec dword [esp + 0x10]
jns 0x401e9c
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffe2
jg 0x401e52
lea ecx, [esp + 0x68]
call fcn.0040bea4
mov dword [esp + 0x10], 0xfffffffa
lea ecx, [esp + 0x50]
mov dword [esp + 0x14], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], 0xfffffffb
push edi
call fcn.0040bdd2
mov dword [esp + 0x24], 0xe31bb000
lea ecx, [esp + 0x80]
mov dword [esp + 0x28], 0x94592404
push 4
call fcn.0040bdd2
push 3
lea ecx, [esp + 0x78]
call fcn.0040bdd2
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x401fad
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
mov dword [ecx + edx*4], 0x8e55a441
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x401f9a
mov dword [esp + 0x10], eax
jmp 0x401fcf
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x80]
mov dword [ecx + edx*4], 0x45464cd0
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x401fb9
mov dword [esp + 0x10], eax
jmp 0x401fef
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
mov dword [ecx + edx*4], 0xa32fbb2f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x401fdc
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], 0x1a
jne 0x402257
mov edi, dword [esp + 0x80]
push dword [esp + 0x40]
movdqa xmm0, xmmword [0xa98e10]
lea ecx, [esp + 0xac]
push ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0x40], 0x1836ccb0
push ecx
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x50]
push eax
movdqu xmmword [esp + 0xa8], xmm0
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
call fcn.0040ee26
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], 0x55a5481f
mov dword [esp + 0x18], 6
mov dword [esp + 0x18], eax
jmp 0x402083
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x5c], 0xd53d2ae4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x402073
inc dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
neg edx
sbb edx, edx
xor ebx, ebx
neg edx
cmp edx, ecx
sete bl
add ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
imul ebx, dword [ecx + 0xc]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], ebx
xor ebx, ebx
cmp dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x38]
setle bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x14]
setge dl
sub ecx, edx
mov edx, 0xb017290b
cmp edx, ecx
mov ecx, dword [esp + 0x50]
sbb edx, edx
inc edx
cmp edx, dword [ecx]
jle 0x4020ee
cmp dword [esp + 0x3c], eax
je 0x4020ee
xor esi, esi
inc esi
jmp 0x4020f0
mov esi, eax
mov ecx, dword [esp + 0x38]
xor edx, edx
cmp ecx, esi
mov esi, dword [esp + 0x50]
setg dl
xor ecx, ecx
cmp edx, dword [esi]
setge cl
mov dword [esi], ecx
mov edx, dword [edi + 8]
lea ecx, [edx + 1]
mov dword [edi + 8], ecx
test edx, edx
je 0x4021c9
cmp dword [esi], eax
je 0x402133
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx]
inc ecx
cmp ecx, dword [esp + 0x60]
jl 0x402133
xor ecx, ecx
inc ecx
jmp 0x402135
mov ecx, eax
cmp ecx, 0xf9695ff7
mov ecx, dword [esp + 0x2c]
push 0xfffffffffffffffc
sbb edx, edx
xor ebx, ebx
neg edx
cmp ecx, edx
pop ecx
setle bl
cmp ecx, ebx
mov ecx, dword [esp + 0x3c]
sbb edx, edx
xor ebx, ebx
neg edx
cmp edx, ecx
mov ecx, dword [esp + 0x34]
setl bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x2c]
setg dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x10]
setl bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x14]
setl dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
setg dl
xor ebx, ebx
imul ecx, edx, 0x3b6e
cmp ecx, 0xb27c
setne bl
xor edx, edx
imul ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
cmp ebx, ecx
mov ecx, dword [esp + 0x60]
setg dl
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [esp + 0x64]
setle bl
add ecx, ebx
je 0x4021c9
xor edx, edx
inc edx
jmp 0x4021cb
mov edx, eax
mov ecx, dword [esp + 0x24]
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x10]
sete bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x2c]
setne dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x50]
setg bl
sub ebx, 0x243b3be7
neg ebx
sbb ebx, ebx
inc ebx
mov dword [esp + 0x18], ebx
cmp dword [ecx], eax
je 0x40220e
cmp dword [esp + 0x10], eax
je 0x40220e
xor edx, edx
inc edx
jmp 0x402210
mov edx, eax
mov eax, dword [esp + 0x74]
xor ecx, ecx
cmp edx, dword [eax]
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x14]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x44]
setle cl
mov dword [eax + 4], ecx
lea ecx, [esp + 0x44]
call fcn.0040bea4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1a
push 0
pop eax
je 0x402010
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
neg eax
sbb eax, eax
inc eax
cmp dword [esp + 0x10], eax
jl 0x40226a
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x74]
call fcn.0040bea4
lea ecx, [esp + 0x80]
call fcn.0040bea4
lea ecx, [esp + 0x50]
call fcn.0040bea4
pop edi
mov dword [esi], 0xfffffff7
pop esi
pop ebx
mov esp, ebp
pop ebp
ret