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

Disassembly:
sub esp, 0x3c
push ebp
mov bp, word [0x439b6a]
cmp bp, 0xd
push esi
mov dword [esp + 0x10], 0
jae 0x40e921
xor edx, edx
mov dx, bp
jmp 0x40e926
mov edx, 0xd
mov eax, dword [0x429b00]
xor ecx, ecx
push ebx
push edi
mov cl, byte [eax + 0x13]
lea edi, [edx + edx*4 + str.stor]
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov cl, byte [eax + 0x12]
xor eax, eax
mov dword [esp + 0x10], ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [esp + 0x1c]
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp edx, 6
rep movsb byte es:[edi], byte [esi]
jne 0x40e991
mov al, byte [0x439b68]
mov cl, al
and cl, 2
neg cl
sbb cl, cl
shr al, 2
and cl, 4
and al, 1
add cl, 0x34
or al, 0x32
mov byte [esp + 0x1d], cl
mov byte [esp + 0x1f], al
jmp 0x40e9cf
cmp edx, 8
je 0x40e9ba
cmp edx, 9
je 0x40e9ba
cmp edx, 0xd
jb 0x40e9cf
xor edx, edx
lea eax, [esp + 0x1d]
mov dx, bp
push edx
push 0x4251f0
push eax
call fcn.00412920
add esp, 0xc
jmp 0x40e9cf
mov ecx, dword [0x439b68]
shr ecx, 1
and ecx, 3
mov dl, byte [ecx + str.NXFS]
mov byte [esp + 0x1f], dl
mov eax, 0x20202020
mov ebx, dword [0x439b88]
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov byte [esp + 0x4b], 0
mov dword [esp + 0x44], eax
mov word [esp + 0x48], ax
mov byte [esp + 0x4a], al
mov eax, ebx
shr eax, 0x10
cmp ebp, 0x12
ja case.0x40ea0e.4
xor ecx, ecx
mov cl, byte [ebp + 0x40f268]
jmp dword [ecx*4 + 0x40f254]
xor edx, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
test ah, 1
mov dword [esp + 0x2c], edx
je 0x40ea2d
mov byte [esp + 0x24], 0x52
test al, 0x80
mov dl, 0x57
mov cl, 0x44
je 0x40ea3d
mov byte [esp + 0x25], dl
mov byte [esp + 0x27], cl
test al, 0x40
mov bl, 0x45
je 0x40ea47
mov byte [esp + 0x26], bl
test al, 0x20
je 0x40ea50
mov byte [esp + 0x28], 0x52
test al, 0x10
je 0x40ea5c
mov byte [esp + 0x29], dl
mov byte [esp + 0x2b], cl
test al, 8
je 0x40ea64
mov byte [esp + 0x2a], bl
test al, 4
je 0x40ea6d
mov byte [esp + 0x2c], 0x52
test al, 2
je 0x40ea79
mov byte [esp + 0x2d], dl
mov byte [esp + 0x2f], cl
test al, 1
je 0x40ea81
mov byte [esp + 0x2e], bl
lea eax, [esp + 0x3c]
xor edx, edx
mov edi, 3
mov esi, 4
mov cl, byte [esp + edx + 0x24]
test cl, cl
je 0x40ea9c
mov byte [eax], cl
inc eax
inc edx
dec esi
jne 0x40ea91
mov byte [eax], 0x2c
inc eax
dec edi
jne 0x40ea8c
dec eax
lea ecx, [esp + 0x3c]
mov byte [eax], 0x20
sub eax, ecx
cmp eax, 0xc
jge 0x40efed
jmp 0x40efc0
mov ecx, eax
and ecx, 0xc00
cmp ecx, 0x400
je 0x40eae5
cmp ecx, 0x800
sete cl
dec ecx
and ecx, 0xffffffdb
add ecx, 0x64
mov byte [esp + 0x3c], cl
jmp 0x40eaea
mov byte [esp + 0x3c], 0x2d
mov edx, eax
mov ecx, eax
and dl, 0x80
mov esi, 0xa
neg dl
sbb dl, dl
and cl, 0x40
and dl, 0x3b
add dl, 0x2d
neg cl
sbb cl, cl
mov byte [esp + 0x3d], dl
mov edx, eax
and cl, 0x46
and dl, 0x20
add cl, 0x2d
neg dl
sbb dl, dl
mov byte [esp + 0x3e], cl
mov ecx, eax
and dl, 0x43
and cl, 0x10
add dl, 0x2d
neg cl
mov byte [esp + 0x3f], dl
mov edx, eax
sbb cl, cl
and dl, 8
and cl, 0x34
add cl, 0x2d
neg dl
mov byte [esp + 0x40], cl
mov ecx, eax
sbb dl, dl
and cl, 4
and dl, 0x45
add dl, 0x2d
neg cl
mov byte [esp + 0x41], dl
mov edx, eax
sbb cl, cl
and dl, 2
and cl, 0x4a
add cl, 0x2d
neg dl
sbb dl, dl
and al, 1
and dl, 0x38
mov byte [esp + 0x42], cl
add dl, 0x2d
mov ecx, dword [esp + 0x10]
neg al
sbb al, al
mov byte [esp + 0x43], dl
and al, 0x37
xor edx, edx
add al, 0x2d
mov byte [esp + 0x44], al
mov eax, ecx
div esi
mov eax, 0xcccccccd
push edx
mul ecx
shr edx, 3
push edx
lea eax, [esp + 0x50]
push 0x425498
push eax
jmp 0x40efe5
mov ecx, eax
and ecx, 0xf000
cmp ecx, 0xa000
ja 0x40ec0d
je 0x40ec06
cmp ecx, 0x5000
ja 0x40ebe8
je 0x40ebe1
cmp ecx, 0x2000
je 0x40ebda
cmp ecx, 0x4000
jne 0x40ec44
mov byte [esp + 0x3c], 0x44
jmp 0x40ec50
mov byte [esp + 0x3c], 0x43
jmp 0x40ec50
mov byte [esp + 0x3c], 0x4c
jmp 0x40ec50
cmp ecx, 0x8000
je 0x40ebff
cmp ecx, 0x9000
jne 0x40ec44
mov byte [esp + 0x3c], 0x52
jmp 0x40ec50
mov byte [esp + 0x3c], 0x53
jmp 0x40ec50
mov byte [esp + 0x3c], 0x4b
jmp 0x40ec50
cmp ecx, 0xe000
ja 0x40ec3c
je 0x40ec35
cmp ecx, 0xb000
je 0x40ec2e
cmp ecx, 0xd000
jne 0x40ec44
mov byte [esp + 0x3c], 0x50
jmp 0x40ec50
mov byte [esp + 0x3c], 0x49
jmp 0x40ec50
mov byte [esp + 0x3c], 0x32
jmp 0x40ec50
cmp ecx, 0xf000
je 0x40ec4b
mov byte [esp + 0x3c], 0x3f
jmp 0x40ec50
mov byte [esp + 0x3c], 0x33
mov ecx, eax
mov edx, eax
and ecx, 0x400
neg ecx
sbb cl, cl
and edx, 0x800
and cl, 0xe6
add cl, 0x48
neg edx
sbb dl, dl
mov byte [esp + 0x3d], cl
mov ecx, eax
and dl, 0xe1
and cl, 2
add dl, 0x4d
neg cl
sbb cl, cl
mov byte [esp + 0x3e], dl
and cl, 0xd7
mov dl, 0x57
add cl, dl
mov byte [esp + 0x3f], cl
mov ecx, eax
and cl, 4
neg cl
sbb cl, cl
and cl, 0xdc
add cl, 0x52
mov byte [esp + 0x40], cl
mov ecx, eax
and ecx, 0x200
neg ecx
sbb cl, cl
and cl, 0xe9
add cl, 0x45
mov byte [esp + 0x41], cl
mov ecx, eax
and cl, 0x40
neg cl
sbb cl, cl
and cl, 0xd6
add cl, 0x58
mov byte [esp + 0x42], cl
mov ecx, eax
and cl, 0x80
neg cl
sbb cl, cl
and eax, 0x100
and cl, 0xd7
add cl, dl
neg eax
sbb al, al
mov byte [esp + 0x43], cl
and al, 0xdc
add al, 0x52
mov byte [esp + 0x44], al
jmp 0x40efc0
test ebp, ebp
jne 0x40ed1f
mov ecx, ebx
mov edx, ebx
not ecx
and ecx, 1
and edx, 0x10
or ecx, 2
shl ecx, 5
or ecx, edx
mov edx, eax
shl ecx, 2
and edx, 0x1c0
cmp edx, ecx
je case.0x40ea0e.4
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, ecx
mov esi, 0xa
div esi
mov eax, 0xcccccccd
and ebx, 0xff
push edx
mul ecx
shr edx, 3
push edx
lea eax, [esp + 0x44]
push 0x425484
push eax
call fcn.00412920
mov ecx, ebx
add esp, 0x10
and cl, 1
mov edx, ebx
neg cl
sbb cl, cl
and dl, 2
and cl, 0xb6
mov eax, ebx
add cl, 0x77
neg dl
sbb dl, dl
and al, 4
and dl, 0x3b
mov byte [esp + 0x3e], cl
add dl, 0x2d
mov ecx, ebx
neg al
sbb al, al
and cl, 0x20
and al, 0x46
mov byte [esp + 0x41], dl
add al, 0x2d
neg cl
sbb cl, cl
mov byte [esp + 0x42], al
and cl, 0x34
add cl, 0x2d
test bl, 0x10
mov byte [esp + 0x40], cl
je 0x40edac
mov byte [esp + 0x3c], 0x64
mov byte [esp + 0x3f], 0x78
jmp 0x40edb1
mov byte [esp + 0x3c], 0x2d
test bl, 8
je 0x40edc0
mov byte [esp + 0x3c], 0x56
jmp 0x40efed
push 0x2e
push 0x439c08
call fcn.004141be
mov esi, eax
add esp, 8
test esi, esi
je 0x40efed
inc esi
push 3
push 0x425480
push esi
call fcn.0041a9e0
add esp, 0xc
test eax, eax
je 0x40ee42
push 3
push 0x425420
push esi
call fcn.0041a9e0
add esp, 0xc
test eax, eax
je 0x40ee42
push 3
push 0x42547c
push esi
call fcn.0041a9e0
add esp, 0xc
test eax, eax
je 0x40ee42
push 3
push 0x425478
push esi
call fcn.0041a9e0
add esp, 0xc
test eax, eax
je 0x40ee42
push 3
push 0x425474
push esi
call fcn.0041a9e0
add esp, 0xc
test eax, eax
jne 0x40efed
mov byte [esp + 0x3f], 0x78
jmp 0x40efed
mov ecx, eax
and ecx, 0xf000
cmp ecx, 0x6000
ja 0x40ee92
je 0x40ee8b
cmp ecx, 0x1000
je 0x40ee84
cmp ecx, 0x2000
je 0x40ee7d
cmp ecx, 0x4000
jne 0x40eeaa
mov byte [esp + 0x3c], 0x64
jmp 0x40eec4
mov byte [esp + 0x3c], 0x63
jmp 0x40eec4
mov byte [esp + 0x3c], 0x70
jmp 0x40eec4
mov byte [esp + 0x3c], 0x62
jmp 0x40eec4
cmp ecx, 0x8000
je 0x40eebf
cmp ecx, 0xa000
je 0x40eeb8
cmp ecx, 0xc000
je 0x40eeb1
mov byte [esp + 0x3c], 0x3f
jmp 0x40eec4
mov byte [esp + 0x3c], 0x73
jmp 0x40eec4
mov byte [esp + 0x3c], 0x6c
jmp 0x40eec4
mov byte [esp + 0x3c], 0x2d
mov edx, eax
mov bl, 0x45
and edx, 0x100
mov ecx, eax
neg edx
sbb dl, dl
and cl, 0x20
and dl, bl
add dl, 0x2d
neg cl
mov byte [esp + 0x3d], dl
mov edx, eax
sbb cl, cl
and dl, 4
and cl, bl
add cl, 0x2d
neg dl
mov byte [esp + 0x40], cl
mov ecx, eax
sbb dl, dl
and cl, 0x80
and dl, bl
add dl, 0x2d
neg cl
mov byte [esp + 0x43], dl
mov edx, eax
sbb cl, cl
and dl, 0x10
and cl, 0x4a
add cl, 0x2d
neg dl
mov byte [esp + 0x3e], cl
mov ecx, eax
sbb dl, dl
and cl, 2
and dl, 0x4a
add dl, 0x2d
neg cl
sbb cl, cl
mov byte [esp + 0x41], dl
and cl, 0x4a
add cl, 0x2d
test al, 0x40
mov byte [esp + 0x44], cl
je 0x40ef54
mov edx, eax
and edx, 0x800
neg edx
sbb dl, dl
and dl, 0xfb
add dl, 0x78
mov byte [esp + 0x3f], dl
jmp 0x40ef6a
mov ecx, eax
and ecx, 0x800
neg ecx
sbb cl, cl
and cl, 0x26
add cl, 0x2d
mov byte [esp + 0x3f], cl
test al, 8
je 0x40ef86
mov edx, eax
and edx, 0x400
neg edx
sbb dl, dl
and dl, 0xfb
add dl, 0x78
mov byte [esp + 0x42], dl
jmp 0x40ef9c
mov ecx, eax
and ecx, 0x400
neg ecx
sbb cl, cl
and cl, 0x26
add cl, 0x2d
mov byte [esp + 0x42], cl
test al, 1
je 0x40efaf
and eax, 0x200
neg eax
sbb al, al
and al, 0xfc
add al, 0x78
jmp 0x40efbc
and eax, 0x200
neg eax
sbb al, al
and al, 0x27
add al, 0x2d
mov byte [esp + 0x45], al
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, ecx
mov esi, 0xa
div esi
mov eax, 0xcccccccd
push edx
mul ecx
shr edx, 3
push edx
lea edx, [esp + 0x50]
push 0x425498
push edx
call fcn.00412920
add esp, 0x10
mov eax, dword [0x439b78]
push 0
lea ecx, [ebp*4 + 0x422600]
push eax
lea edx, [esp + 0x44]
push ecx
push edx
push 0x425468
push 0x429b04
call fcn.00412920
add esp, 0x14
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
mov al, byte [0x439b68]
add esp, 0x10
test al, 1
mov al, byte [0x439b84]
pop edi
pop ebx
je 0x40f046
and al, 1
neg al
sbb eax, eax
and eax, 0x12
add eax, 0x42
jmp 0x40f052
and al, 1
neg al
sbb eax, eax
and eax, 0x12
add eax, 0x62
push 0
push eax
push 0x425464
push 0x429b04
call fcn.00412920
add esp, 0xc
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
cmp word [0x439b7e], 0
jne 0x40f09e
mov eax, dword [0x439b88]
test ah, 0x80
je 0x40f0af
cmp ebp, 3
je 0x40f09e
cmp ebp, 6
je 0x40f09e
cmp ebp, 0xb
jne 0x40f0af
mov al, byte [0x439b68]
not al
and eax, 8
or al, 0x16
shl eax, 2
jmp 0x40f0c0
mov al, byte [0x439b68]
and al, 8
neg al
sbb eax, eax
and eax, 0x3f
add eax, 0x2d
push 0
push eax
push 0x425464
push 0x429b04
call fcn.00412920
add esp, 0xc
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
mov eax, dword [0x429264]
add esp, 0x10
cmp eax, 4
jne 0x40f13f
mov cl, byte [0x439b68]
mov eax, dword [0x439b74]
test cl, 1
je 0x40f106
sub eax, 0xc
push 0
push eax
mov eax, dword [0x439b78]
push eax
call fcn.00409ec0
mov ecx, eax
mov eax, 0x66666667
add ecx, 5
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
push 0x42545c
push 0x429b04
call fcn.00412920
add esp, 0x14
jmp 0x40f15f
cmp eax, 5
jne 0x40f173
mov edx, dword [0x439b74]
push 0
push edx
push 0x425454
push 0x429b04
call fcn.00412920
add esp, 0xc
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
xor eax, eax
push 3
mov ax, word [0x439b7e]
push eax
call fcn.00407860
mov esi, eax
mov eax, dword [0x439b40]
add esp, 8
test esi, esi
je 0x40f1a7
test eax, eax
je 0x40f1dc
push eax
call fcn.00413326
add esp, 4
xor eax, eax
mov dword [0x439b40], eax
jmp 0x40f1ab
mov esi, dword [esp + 0x10]
test eax, eax
je 0x40f1dc
mov edx, dword [0x439b6c]
lea ecx, [esp + 0x28]
push 0
push ecx
xor ecx, ecx
push edx
mov cx, word [0x439b7e]
push 1
push ecx
push eax
call fcn.0040b830
add esp, 0x18
test al, 1
je 0x40f1dc
lea eax, [esp + 0x2c]
jmp 0x40f1de
xor eax, eax
lea edx, [esp + 0x34]
push 0
push edx
push eax
push 0x439b6c
mov byte [esp + 0x44], 0
call fcn.0040f510
push eax
lea eax, [esp + 0x28]
push eax
push 0x42544c
push 0x429b04
call fcn.00412920
add esp, 0x1c
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
call fcn.00409f60
mov eax, dword [0x439b80]
test ax, ax
je 0x40f24b
and eax, 0xffff
push 0
push eax
call fcn.00407860
add esp, 8
test eax, eax
je 0x40f24b
cmp eax, 1
mov esi, eax
jg 0x40f24d
mov eax, esi
pop esi
pop ebp
add esp, 0x3c
ret