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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46d044
mov eax, dword fs:[0]
push eax
sub esp, 0x190
mov eax, dword [0x485370]
xor eax, esp
mov dword [esp + 0x188], eax
push ebx
push esi
push edi
mov eax, dword [0x485370]
xor eax, esp
push eax
lea eax, [esp + 0x1a0]
mov dword fs:[0], eax
mov eax, dword [0x4881c0]
mov edi, ecx
mov ecx, dword [0x4881bc]
push eax
push ecx
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x24], edi
call fcn.0040fe20
lea esi, [esp + 0x80]
call fcn.00409ed0
push 0x47b3fc
lea eax, [esp + 0x9c]
push eax
mov ebx, 8
mov dword [esp + 0x1b0], 0
call fcn.00404f80
push 0x47b410
lea ecx, [esp + 0x90]
push ecx
mov ebx, 9
call fcn.00404f80
push 0x47b424
mov edx, esi
push edx
mov ebx, 4
call fcn.00404f80
mov ecx, esi
call fcn.0040fc70
lea esi, [esp + 0xa0]
call fcn.00409ed0
push 0x47b430
lea eax, [esp + 0xbc]
push eax
mov ebx, 9
mov byte [esp + 0x1b0], 1
call fcn.00404f80
push 0x47b444
lea ecx, [esp + 0xb0]
push ecx
mov ebx, 0xa
call fcn.00404f80
push 0x47b45c
mov edx, esi
push edx
mov ebx, 4
call fcn.00404f80
mov ecx, esi
call fcn.0040fc70
xor eax, eax
lea esi, [esp + 0xcc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
call fcn.004023a0
mov eax, edi
mov byte [esp + 0x1a8], 2
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40e170
sub eax, ecx
lea edi, [esp + 0xcc]
mov ebx, eax
call fcn.00402410
mov esi, edi
call fcn.004023a0
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xd0]
push eax
mov eax, dword [esp + 0xd0]
push ecx
push eax
push eax
mov eax, ebx
lea edi, [esp + 0xd0]
call fcn.00402280
add esp, 0x10
cmp dword [esp + 0xc0], 0
je 0x40e1f2
lea edi, [esp + 0xcc]
mov byte [esp + 0x1a8], 1
call fcn.00402410
lea esi, [esp + 0xa0]
call fcn.00409f50
lea esi, [esp + 0x80]
call fcn.00409f50
xor al, al
jmp 0x40eb42
mov edi, str.root
lea eax, [esp + 0x20]
lea ecx, [esp + 0xcc]
call fcn.00402330
mov edi, str.status
lea eax, [esp + 0x18]
lea ecx, [esp + 0x20]
call fcn.00402330
cmp dword [esp + 0x18], 0
je 0x40e1bf
mov edi, str.softs
lea eax, [esp + 0x18]
lea ecx, [esp + 0x20]
call fcn.00402330
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40e243
mov edx, dword [eax + 0x10]
mov dword [esp + 0x18], edx
jmp 0x40e24b
mov dword [esp + 0x18], 0
lea eax, [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
test eax, eax
je 0x40eb14
lea esi, [esp + 0x30]
call fcn.00409ed0
mov byte [esp + 0x1a8], 3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40e283
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
jmp 0x40e28f
mov dword [esp + 0x5c], 0
lea eax, [esp + 0x5c]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x40e8e3
lea ecx, [ecx]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x40e2af
mov eax, dword [esi + 4]
test eax, eax
jne 0x40e2b4
mov eax, 0x479c70
mov ecx, str.softname
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e2e0
test dl, dl
je 0x40e2dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e2e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e2c0
xor eax, eax
jmp 0x40e2e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e3f9
test esi, esi
je 0x40e2f8
mov edi, dword [esi + 8]
test edi, edi
jne 0x40e2fd
mov edi, 0x479c70
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x1a8], 4
test edi, edi
je 0x40e342
test edi, 0xffff0000
jne 0x40e346
movzx edi, di
call fcn.00404bb0
test eax, eax
je 0x40e365
push eax
mov eax, edi
lea edi, [esp + 0x18]
call fcn.00410180
jmp 0x40e365
xor eax, eax
jmp 0x40e359
mov eax, edi
lea edx, [eax + 1]
jmp 0x40e350
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e350
sub eax, edx
push edi
mov edi, eax
lea eax, [esp + 0x18]
call fcn.004102a0
lea ecx, [esp + 0x78]
push ecx
lea eax, [esp + 0x18]
mov byte [esp + 0x1ac], 5
call fcn.00411220
add esp, 4
mov byte [esp + 0x1a8], 6
mov ecx, dword [eax]
mov edi, dword [esp + 0x30]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x40e3e8
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x40e3da
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40e3da
call fcn.00404b40
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x40e3c2
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov byte [esp + 0x1a8], 5
mov eax, dword [esp + 0x78]
mov dword [esp + 0x30], esi
jmp 0x40e535
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x34]
push ecx
call fcn.00404f80
mov byte [esp + 0x1a8], 5
mov eax, dword [esp + 0x78]
jmp 0x40e535
test esi, esi
je 0x40e404
mov eax, dword [esi + 4]
test eax, eax
jne 0x40e409
mov eax, 0x479c70
mov ecx, str.filename
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e430
test dl, dl
je 0x40e42c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e430
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e410
xor eax, eax
jmp 0x40e435
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e562
test esi, esi
je 0x40e448
mov edi, dword [esi + 8]
test edi, edi
jne 0x40e44d
mov edi, 0x479c70
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x1a8], 7
test edi, edi
je 0x40e492
test edi, 0xffff0000
jne 0x40e496
movzx edi, di
call fcn.00404bb0
test eax, eax
je 0x40e4b5
push eax
mov eax, edi
lea edi, [esp + 0x18]
call fcn.00410180
jmp 0x40e4b5
xor eax, eax
jmp 0x40e4a9
mov eax, edi
lea edx, [eax + 1]
jmp 0x40e4a0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e4a0
sub eax, edx
push edi
mov edi, eax
lea eax, [esp + 0x18]
call fcn.004102a0
lea ecx, [esp + 0x58]
push ecx
lea eax, [esp + 0x18]
mov byte [esp + 0x1ac], 8
call fcn.00411220
add esp, 4
mov byte [esp + 0x1a8], 9
mov ecx, dword [eax]
mov edi, dword [esp + 0x38]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x40e529
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x40e51b
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40e51b
call fcn.00404b40
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x40e512
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x38], esi
jmp 0x40e529
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x3c]
push ecx
call fcn.00404f80
mov byte [esp + 0x1a8], 8
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e551
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1a8], 3
mov eax, dword [esp + 0x14]
jmp 0x40e72d
test esi, esi
je 0x40e56d
mov eax, dword [esi + 4]
test eax, eax
jne 0x40e572
mov eax, 0x479c70
mov ecx, str.downurl
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e597
test dl, dl
je 0x40e593
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e597
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e577
xor eax, eax
jmp 0x40e59c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e66f
test esi, esi
je 0x40e5b3
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 8]
test esi, esi
jne 0x40e5b8
mov esi, 0x479c70
lea edx, [esp + 0x24]
push edx
call fcn.0040fb10
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x28]
mov byte [esp + 0x1ac], 0xa
call fcn.00411220
add esp, 4
mov byte [esp + 0x1a8], 0xb
mov ecx, dword [eax]
mov esi, dword [esp + 0x34]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x40e636
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40e628
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40e628
call fcn.00404b40
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40e61f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x34], ebx
jmp 0x40e636
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x38]
push ecx
call fcn.00404f80
mov byte [esp + 0x1a8], 0xa
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e65e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1a8], 3
mov eax, dword [esp + 0x24]
jmp 0x40e72d
test esi, esi
je 0x40e67a
mov eax, dword [esi + 4]
test eax, eax
jne 0x40e67f
mov eax, 0x479c70
mov ecx, 0x47b4a0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e6a4
test dl, dl
je 0x40e6a0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e6a4
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e684
xor eax, eax
jmp 0x40e6a9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e752
test esi, esi
je 0x40e6c0
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 8]
test esi, esi
jne 0x40e6c5
mov esi, 0x479c70
lea edx, [esp + 0x28]
push edx
call fcn.0040fb10
lea eax, [esp + 0x50]
push eax
mov bl, 0xc
lea eax, [esp + 0x2c]
mov byte [esp + 0x1ac], bl
call fcn.00411220
add esp, 4
lea edi, [esp + 0x3c]
mov byte [esp + 0x1a8], 0xd
call fcn.00406f90
mov byte [esp + 0x1a8], bl
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e721
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1a8], 3
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e8b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40e8b4
test esi, esi
je 0x40e75d
mov eax, dword [esi + 4]
test eax, eax
jne 0x40e762
mov eax, 0x479c70
mov ecx, str.picindex
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e787
test dl, dl
je 0x40e783
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e787
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e767
xor eax, eax
jmp 0x40e78c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e7b2
test esi, esi
je 0x40e79b
mov eax, dword [esi + 8]
test eax, eax
jne 0x40e7a0
mov eax, 0x479c70
push eax
call fcn.00452bc0
add esp, 4
mov dword [esp + 0x40], eax
jmp 0x40e8b4
test esi, esi
je 0x40e7bd
mov eax, dword [esi + 4]
test eax, eax
jne 0x40e7c2
mov eax, 0x479c70
mov ecx, 0x47b4b0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e7e7
test dl, dl
je 0x40e7e3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e7e7
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e7c7
xor eax, eax
jmp 0x40e7ec
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e812
test esi, esi
je 0x40e7fb
mov eax, dword [esi + 8]
test eax, eax
jne 0x40e800
mov eax, 0x479c70
push eax
call fcn.00452bc0
add esp, 4
mov dword [esp + 0x4c], eax
jmp 0x40e8b4
test esi, esi
je 0x40e81d
mov eax, dword [esi + 4]
test eax, eax
jne 0x40e822
mov eax, 0x479c70
mov ecx, str.cmdline
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e847
test dl, dl
je 0x40e843
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e847
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e827
xor eax, eax
jmp 0x40e84c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e8b4
cmp dword [esp + 0x1c], eax
je 0x40e861
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 8]
test esi, esi
jne 0x40e866
mov esi, 0x479c70
lea edx, [esp + 0x18]
push edx
call fcn.0040fb10
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x1ac], 0xe
call fcn.00411220
add esp, 4
lea edi, [esp + 0x44]
mov byte [esp + 0x1a8], 0xf
call fcn.00406f90
lea ecx, [esp + 0x70]
call fcn.004051a0
lea eax, [esp + 0x18]
mov byte [esp + 0x1a8], 3
call fcn.0040fd30
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40e8c9
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x68], ecx
lea eax, [esp + 0x68]
jmp 0x40e8d5
mov dword [esp + 0x6c], 0
lea eax, [esp + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x40e2a0
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov bl, 0x10
lea esi, [esp + 0x7c]
mov byte [esp + 0x1a8], bl
call fcn.0040f800
mov byte [esp + 0x1a8], 0x11
mov ecx, dword [esp + 0x40]
mov edx, dword [eax]
push ecx
push edx
push str._sicon_d.jpg
lea edi, [esp + 0x20]
call fcn.00404aa0
mov byte [esp + 0x1b4], bl
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e957
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x48]
lea esi, [eax - 0x10]
add edi, 0xfffffff0
mov dword [esp + 0x1c], esi
cmp esi, edi
je 0x40e9b6
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x40e9a8
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x40e9a8
mov eax, esi
call fcn.00404b40
mov esi, eax
or edx, 0xffffffff
lock xadd dword [ebx], edx
dec edx
test edx, edx
jg 0x40e99b
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
add esi, 0x10
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x1c]
jmp 0x40e9b6
mov ebx, dword [eax - 0xc]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.00404f80
mov eax, dword [0x4881c0]
mov edx, dword [0x4881bc]
lea ecx, [esp + 0x30]
cmp ecx, eax
jae 0x40ea41
cmp edx, ecx
ja 0x40ea41
mov ebx, dword [0x4881c4]
mov edi, ecx
sub edi, edx
cmp eax, ebx
jne 0x40ea26
mov ecx, eax
sub ecx, edx
sar ecx, 5
cmp ecx, 0x7fffffe
ja 0x40eb66
sub ebx, edx
inc ecx
sar ebx, 5
cmp ecx, ebx
jbe 0x40ea26
mov eax, ebx
mov edx, eax
shr edx, 1
mov ebx, 0x7ffffff
sub ebx, edx
cmp ebx, eax
jae 0x40ea0d
xor eax, eax
jmp 0x40ea0f
add eax, edx
cmp eax, ecx
jae 0x40ea15
mov eax, ecx
push eax
call fcn.00410070
mov eax, dword [0x4881c0]
mov edx, dword [0x4881bc]
and edi, 0xffffffe0
add edi, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x64], eax
mov byte [esp + 0x1a8], 0x12
test eax, eax
je 0x40eab3
jmp 0x40eaa8
mov edi, dword [0x4881c4]
cmp eax, edi
jne 0x40ea90
mov ecx, eax
sub ecx, edx
sar ecx, 5
cmp ecx, 0x7fffffe
ja 0x40eb66
sub edi, edx
mov edx, edi
inc ecx
sar edx, 5
cmp ecx, edx
jbe 0x40ea90
mov eax, edx
shr edx, 1
mov edi, 0x7ffffff
sub edi, edx
cmp edi, eax
jae 0x40ea7d
xor eax, eax
jmp 0x40ea7f
add eax, edx
cmp eax, ecx
jae 0x40ea85
mov eax, ecx
push eax
call fcn.00410070
mov eax, dword [0x4881c0]
mov dword [esp + 0x64], eax
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1a8], 0x13
test eax, eax
je 0x40eab3
lea edi, [esp + 0x30]
push eax
call fcn.00410a90
mov eax, dword [0x4881c0]
add eax, 0x20
mov dword [0x4881c0], eax
mov byte [esp + 0x1a8], 3
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x40eadc
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
lea esi, [esp + 0x30]
call fcn.00409f50
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40eafa
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x54], ecx
lea eax, [esp + 0x54]
jmp 0x40eb06
mov dword [esp + 0x2c], 0
lea eax, [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x40e25d
lea edi, [esp + 0xcc]
mov byte [esp + 0x1a8], 1
call fcn.00402410
lea esi, [esp + 0xa0]
call fcn.00409f50
lea esi, [esp + 0x80]
call fcn.00409f50
mov al, 1
mov ecx, dword [esp + 0x1a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x188]
xor ecx, esp
call fcn.004501c4
mov esp, ebp
pop ebp
ret
push str.vector_T__too_long
call fcn.0041939f
int3